1.6 常用UNIX/Linux命令 -用户及权限管理类命令
用户权限管理类命令
1. 用户及权限管理类命令:
- 用户管理类命令:
useradd usermod passwd userdel su id whoami w finger
- 用户组管理类命令:
groupadd groupmod groupdel
- 文件权限管理类命令:
chmod chown chgrp
2. 用户:
- Linux用户分为三类
- 超级用户:拥有最高权限
- 系统用户:与系统服务相关,但不能用于登录
- 普通用户:由超级用户创建并赋予权限,只能操作其拥有权限的文件和目录,只能管理自己启动的进程
3. 用户信息:
- 用户名:唯一,由字母、数字和符号组成。
- 口令
- 用户ID(uid):每个用户拥有的唯一的识别号码。超级用户为0,系统用户1-499,普通用户从500开始
- 用户组id(gid)
- 用户主目录
- 全称:用户帐户的附加信息,可以为空
- 登录Shell:默认使用Bash
4. 与用户相关的文件
- 用户账号信息文件/etc/password
- 文件中每一行为一个用户的信息
- 文件中各字段从左到右依次为:用户名、口令、用户ID、用户组、全称、用户主目录和登录Shell。
- 口令字段用x来填充,加密后的口令保存在/etc/shadow
文件中。
- 用户口令信息文件/etc/shadow
- shadow文件只能用超级用户才能查看并修改是其内容,且加密储存
5. 用户组:
- Linux将相同特性的用户划归为同一用户组,可以大大简化用户的管理,方便用户之间文件的共享,任何用户都至少属于一个用户组。
- 一个用户只能属于一个用户组,但可以同时属于多个附加组。用户不仅拥有其用户组的权限,还同时拥有其附加组的权限。
- 用户组包括系统用户组与私人用户组
6. 与用户组相关的文件
- 用户组账号信息文件/etc/group
- 每一行为一个用户组信息
- 文件中各字段从左到右依次为:用户组名、口令、用户组ID和附加用户列表。
- 用户组口令信息文件/etc/gshadow
- 同/etc/shadow
7. 用户管理命令:
-
useradd
- 功能:新建用户帐号(超级用户可用)
- 格式:useradd [参数] <用户名>
- -d(directory) 指定用户登入时的主目录
- -e(end) 账号终止日期
- -g(group) 指定账户所属的用户组
- -G 指定账户所属的附加组
- -s(shell) 指定账户登录后所使用的shell
- -u(userid) 指定用户ID号
- 举例:新建一个用户zhangsan,用户组为net04
useradd -g net04 zhangsan
-
passwd
- 功能:设置或修改用户的口令以及口令的属性
- 格式:passwd [参数] <用户>
- -d(delete) 删除用户的口令
- -l(lock) 暂时锁定指定的用户帐号
- -u(unlock) 解除指定用户帐号的锁定
- -s(show) 显示指定用户帐号的状态
- 举例:
- 设置与修改属性:
passwd zhangsan
- 删除口令:
passwd -d zhangsan
- 锁定/解锁用户账号:
passwd -l zhangsan
passwd -u zhangsan
- 显示用户账号状态:
passwd -s= zhangsan
- 设置与修改属性:
-
usermod
- 功能:修改用户的属性(超级用户可用)
- 格式:usermod [参数] <用户名>
- -d 指定用户登入时的主目录
- -e 账号终止日期
- -g 指定账户所属的用户组
- -G 指定账户所属的附加组
- -s 指定账户登录后所使用的shell
- -u 指定用户ID号
- -l 新用户名(用于修改用户名)
- 举例:将zhangsan修改位zhangs
usermod - l zhangs zhangsan
-
userdel
- 功能:删除指定用户账户(超级用户可用)
- 格式:userdel [参数] <用户名>
- -r:不仅删除此用户帐号,而且删除用户主目录及本地邮件存储的目录或文件
- -f:删除用户登入目录以及目录中所有文件
- 如果删除用户属于私人组群,而该组群没有其他用户,组群也一并删除。
- 正在使用系统的用户不能删除
-
su
- 功能:切换用户身份
- 格式:su <用户名>
- 超级用户可以切换为任何普通用户,而不需要输入口令;普通用户转换为其他用户时需要输入被转换用户的口令
- 使用exit可以返回到本来的用户身份;
-
id
- 功能:查看用户的UID、GID和用户所属用户组的信息,如果不指定用户,
则显示当前用户的相关信息。 - 格式:id <用户名>
- 功能:查看用户的UID、GID和用户所属用户组的信息,如果不指定用户,
-
whoami
- 功能:查看当前用户名
-
w
- 功能:查看当前登录系统用户和详细信息
8. 用户组管理命令:
- groupadd
- 功能:新建组群(超级用户可用)
- 格式:groupadd [参数] <用户组名>
- -g:指定用户组ID
- -o:允许组ID号不唯一
- groupmod
- 功能:修改指定用户组的属性(超级用户可用)
- 格式:groupmod [参数] <用户组名>
- -g:指定新的用户组ID
- -n:指定新的用户组名字
- -o: 允许组ID号不唯一
- groupdel
- 功能:删除指定的用户组(超级用户可用)
- 格式:groupdel <用户组名>
- 注意:在删除指定用户组之前必须保证该用户组不是任何用户的主要组群,否则要先删除以此用户组为主要组群的用户才可以删除该用户组
9. 文件权限:
- 读取权限:浏览文件/目录中内容的权限;
- 写入权限:
- 对文件而言是修改文件内容的权限
- 对目录而言是删除、添加和重命名目录内文件的权限;
- 执行权限:
- 对可执行文件而言是允许执行的权限
- 对目录而言是进入目录的权限。
10. 基于用户的文件权限管理:
-
文件用户分类
- 文件所有者:建立文件和目录的用户;
- 文件所有者所在组用户:文件所有者所属用户组中的其他用户;
- 其他用户:既不是文件所有者,又不是文件所有组所在组的其他所有用户。
- 超级用户:负责整个系统的管理和维护,拥有系统中所有文件的全部访问权限
-
字母表示法:
11. 修改文件权限的chmod命令
- 功能:修改文件的访问权限
- 格式:chmod <模式> <文件>
- 模式:
- 对象:u 文件所有者 、g 同组用户、o 其他用户
- 操作符:+增加、-删除、=赋予
- 权限:r 读、w 写、x 执行、s设置用户ID
- 模式:
- 举例:
- 取消同组用户对file文件的写入权限
chmod g-w file
- 将pict目录的访问权限设置为775
chmod 775 pict
- 设置file文件的设置用户ID位
chmod u+s file
- 取消同组用户对file文件的写入权限
12. 修改文件所有者的chown命令
- 功能:将指定文件的拥有者改为指定的用户或用户组
- 格式:chown [选项] <所有者/组> <文件>...
- -c 显示更改的部分的信息
- -f 忽略错误信息
- -h 修复符号链接
- -R 处理指定目录以及其子目录下的所有文件
- -v 显示详细的处理信息
- -deference 作用于符号链接的指向,而不是链接文件本身
- 用户是用户名或者用户ID,用户组可以是组名或者组ID
- 文件是以空格分开的要改变权限的文件列表,支持通配符
- 举例:将ex1的所有者由root 改为hellen
chown hellen ex1
13. 修改文件所属用户组的chgrp命令
- 功能:改变文件的所属用户组
- 格式:chgrp [选项] <组> <文件>
- -c 当发生改变时输出调试信息
- -f 不显示错误信息
- -R 处理指定目录以及其子目录下的所有文件
- -v 运行时显示详细的处理信息
- --dereference 作用于符号链接的指向,而不是符号链接本身
- --no-dereference 作用于符号链接本身
- 用户组可以是组名或者组ID
- 举例:将ex1文件所属的用户组由root改为staff
chgrp staff ex1