• 1. Linux嵌入式编程Linux基础操作查询UID及GID id 主要参数:id [-agu][用户名] 无参数 在没有加任何参数的情况下,查询的是当前操作 用户的用户名,UID,GID和所处的主用户组和附属 用户组 -a 显示所有信息 -g 只显示组ID号 -u 只显示用户ID 例:id id root id -ag root ——用户及权限管理指令一、用户和组的查询指令
  • 2. Linux嵌入式编程Linux基础操作查询用户信息 finger 主要参数 finger [-ls参数选项] [用户名] 作用:用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(Login Time)、办公地点、办公电话等 无参数 默认以短格-s 来输出登录本机的所有用户信息 -l 采用长格式 -s 显示短格式 例:finger finger -l或finger -s finger -s root ——用户及权限管理指令一、用户和组的查询指令
  • 3. Linux嵌入式编程Linux基础操作查询登录主机用户 whoami:显示自身用户名称 w: 显示目前登录用户信息 who: 显示目前登陆的所有用户信息 通过文件查看用户和群组 cat /etc/group | grep root: 显示结果: root:x:1001:root,group_name 表示root这个组有两个用户root,group_name cat /etc/passwd | grep root 显示结果 root:x:0:0:root:/root:/bin/bash ——用户及权限管理指令一、用户和组的查询指令
  • 4. Linux嵌入式编程Linux基础操作添加用户组 groupadd 常用参数 groupadd [-g gid][-o][-r][-f] groupname -g gid 除非使用-o参数不然该值必须是唯一,不可相同。数值不 可为负。 -o 允许设置相同组id的群组 -r 建立系统组 例:groupadd javasky groupadd -g 666 google 设置GID为666的用户组,GID小于500的通常是留给系统账号使用——用户及权限管理二、群组管理指令
  • 5. Linux嵌入式编程Linux基础操作修改用户组 groupmod 常用参数 groupmod [-g gid [-o]] [-n group_name] group -g gid 指定id -o 允许设置相同组id的群组 -n group_name 修改用户组名为group_name 例:groupmod -n google javasky groupmod –g 600 javasky 删除群组 groupdel 常用参数 groupdel 例:groupdel javasky——用户及权限管理二、群组管理指令
  • 6. Linux嵌入式编程Linux基础操作添加用户 useradd 常用参数 useradd [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-e expire ] [-p passwd] name -c comment 新帐号 password 档的说明栏 。 -d home_dir 新帐号每次登入时所使用的home_dir。并当成登入 时目录名称。 -e expire_date 帐号终止日期。日期的指定格式为MM/DD/YY。 -g initial_group group名称或以数字来做为用户登入起始用户组。 用户组名须为现有存在的名称。用户组数字也须为 现有存在的用户组。预设的用户组数字为1。 -s shell 用户登入后使用的shell名称。预设为不填写,这样 系统会帮你指定预设的登入shell。 -u uid uid用户的ID值。必须为唯一的ID值 -G groups 归属组群,组名用逗号隔开——用户及权限管理三、用户管理指令
  • 7. Linux嵌入式编程Linux基础操作在建立用户时,可用如下方法查看: 查看用户路径方法 ls -ld /opt/longcpu/ 查看用户信息方法 more /etc/passwd |grep longcpu finger longcpu id longcpu (1) 例 建一用户longcpu,不使用任何参数 useradd longcpu (2) 例 添加一个新用户longcpu ,标注用户全名ChinaCpu; useradd -c ChinaCpu longcpu ——用户及权限管理三、用户管理指令
  • 8. Linux嵌入式编程Linux基础操作(3)例:自定义用户的家目录、SHELL类型、所归属的用户组等; useradd -c ChinaCpu -d /opt/longcpu -G linuxsir,root,beinan -s /bin/tcsh longcpu (4)例:添加了一个帐号,并且设置其帐号有效期,一旦过了这个日期,便停止其登录; useradd -e 11/04/2005 cooler more /etc/passwd |grep cooler finger cooler id cooler ——用户及权限管理三、用户管理指令
  • 9. Linux嵌入式编程Linux基础操作修改用户 usermod 修改用户账号 主要参数 usermod[必要参数][选择参数][用户账户] -m 建立用户的根目录 -s 指定shell -c<备注> 加上备注 -d<目录> 指定根目录 -e<时间> 指定有效期 -g<群组> 指定用户群 -G<群组> 指定用户的次群组 例:更改登录目录 usermod -d /home/9linux root范例2: 改变用户的UID usermod -u 777 root——用户及权限管理三、用户管理指令
  • 10. Linux嵌入式编程Linux基础操作删除用户 usermod 主要参数 userdel [-r] 名称 -r 删除用户的同时,也一并把其家目录和文件一同删除 例:删除用户bnnb,但不删除其家目录及文件 userdel bnnb 例:删除用户lanhaitun,其家目录及文件一并删除 userdel -r lanhaitun——用户及权限管理三、用户管理指令
  • 11. Linux嵌入式编程Linux基础操作创建或修改用户密码 passwd 主要参数 passwd [-dl][用户名] 无参数 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子; 例:修改当前用户密码 passwd 例:更改其它用户密码(以root权限来创建或修改密码) passwd javasky 例:删除用户密码 passwd -d javasky 例:锁定用户beinan不能更改密码 passwd -l beinan ——用户及权限管理三、用户管理指令
  • 12. Linux嵌入式编程Linux基础操作切换用户 su 主要参数 su [-mp] [-c command] [-] [USER [ARG]] -m, -p 执行su时不改变环境变量 -l 好像是重新登陆一样,工作目录也会改变 例:变更帐号为 root 并在执行 ls 指令后退出变回原使用者 su -c ls root 例:在root下切换到普通用户 su [用户名] 例:在普通用户下,进入root或其它用户,输入 su [用户名] su yecy password: 注:su -或 su -l切换至root ——用户及权限管理三、用户管理指令
  • 13. Linux嵌入式编程Linux基础操作文件权限 在下图中我们可以了解到具体的权限表示:——用户及权限管理四、权限管理
  • 14. Linux嵌入式编程Linux基础操作常用参数 chmod [-cfvR] [ugoa...][[+-=][rwxX]...][,...] file... u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 -c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) o+rwx——用户及权限管理四、权限管理
  • 15. Linux嵌入式编程Linux基础操作例:将档案 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt chmod ug+w,o-w file2.txt chmod a+r file3.txt 此外chmod也可以用数字来表示权限,语法为: chmod abc file 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6(去掉执行权限); 若要r-x属性则4+1=5(去掉写权限)。 例:chmod 777 file chmod 771 file——用户及权限管理四、权限管理