管理用户账号和组账号
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
用户帐号
- 超级用户
- 普通用户
- 程序用户
组账号
- 基本组(私有组)
- 附加组(公共组)
UID和GID
- UID(User lDentity,用户标识号)
- GID(Group lDentify,组标识号)
用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置:/etc/passwd
- 每一行对应一个用户的帐号记录
[root@localhost ~l# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
用户账号文件/etc/shadow
保存用户的密码、账号有效期等信息
- 文件位置:/etc/shadow
- 每一行对应一个用户的密码记录
[root@localhost ~]# head -2 /etc/shadow
root:$1$55HB4pbx$acHgk4IZiHTZ9cw0ZJe8f0:14374:0:99999:7..
bin:*.14374:0:99999:7:::
[root@localhost ~]# tail -1 /etc/shadowteacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
添加用户账号
useradd命令
useradd [选项]... 用户名
常用选项
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
[root@localhost ~]# useradd -d /ftphome/mike -g mike -Gftpuser -s /sbin/nologin mike
设置/更改用户口令passwd
passwd命令
passwd [选项]... 用户名
常用选项
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户,锁定的用户账号将无法再登录系统。
-S:查看用户账户的状态(是否被锁定)。
-u:解锁用户账户。不指定用户名时,修改当前账号的密码
修改用户账号的属性usermod
usermod命令
usermod [选项]... 用户名
常用选项
-l #更改用户的登录名称
-L #锁定用户帐户
-U #解锁用户账户的命令
以下选项与useradd命令中的含义相同
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
usermod -l master admin1 #将 admin1 用户的登录名称更改为 master
删除用户账号userdel
userdel命令
userdel [-r] 用户名
- 添加-r选项时,表示连用户的宿主目录一并删除
root@localhost ~]# useradd stu01
[root@localhost ~]#ls -ld /home/stu01/
drwx------2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost ~]# userdel -r stu01 #删除用户帐号stu01
[root@localhost ~]#ls -ld /home/stu01/
ls:/home/stu01/: 没有那个文件或目录
用户账号的初始配置文件
文件来源
- useradd 命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件
- 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
主要的用户初始配置文件
- ~/.bash profile
- ~/.bashrc
- ~/.bash_logout
组账号文件
与用户帐号文件相类似
- /etc/group:保存组帐号基本信息
- /etc/gshadow:保存组帐号的密码信息
添加组账号groupadd
groupadd命令
groupadd [-g GlD] 组账号名
示例
[root@localhost ~]# groupadd -g 1000 market #添加组帐号 market
[root@localhost ~]# tail -1 /etc/group
market:x:1000:
添加删除组成员gpasswd
gpasswd命令
- 设置组帐号密码(极少用)、添加/删除组成员
gpasswd [选项]... 组帐号名
常用选项
-a: #向组内添加一个用户
-d: #从组内删除一个用户成员
-M: #定义组成员列表,以逗号分隔
删除组账号groupdel
groupdel命令
groupdel 组帐号名
示例
[root@localhost ~]# groupdel market #删除组帐号market
[root@localhost ~]# grep "market" /etc/group
查询账号信息
groups命令
- 查询用户所属的组
groups [用户名]
id命令
- 查询用户身份标识
id [用户名]
finger命令
- 查询用户账号的登录属性
- 注:需要先进行安装finger软件包
finger [用户名]
w、who、users命令
- 查询已登录到主机的用户信息
管理目录和文件的属性
查看文件/目录的权限和归属
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 |
r | w | - | r | - | - | r | - | - |
4 | 2 | 0 | 4 | 0 | 0 | 4 | 0 | 0 |
6 | 4 | 4 |
设置文件和目录的权限chmod
chmod命令
chmod [ugoa] [+-=] ↓ [rwx] 文件或目录... # r、w、x分别表示读、写、运行权限
↓ +、-、=分别表示增加、去除、设置权限
u、g、o、a 分别表示属主属组、其他用户、所有用户
或
chmod nnn 文件或目录... #nnn为3位八进制数
常用选项
- -R:递归修改指定目录下所有子项的权限
设置文件和目录的归属chown
chown命令
- chown 属主文件或目录
- chown :属组 文件或目录
- chown 属主:属组 文件或目录
常用选项
- -R:递归修改指定目录下所有文件、子目录的归属
设置目录和文件的默认权限umask
umask作用
- 控制新建的文件或者目录的权限
- 默认权限去除umask的权限为新建的文件或者目录的的权限
-
umask设置:umask 022
-
umask查看:umask
-
示例
-
将umask设为000,新建目录或者文件,查看权限
-
将umask设为022,新建目录或者文件,再查看权限