目录
1. Linux 账户及组的概念
2. 创建账户及组
2.1 useradd
2.2 groupadd
3. 修改账户及组
3.1 `passwd`
3.2 `usermod`
4. 删除账户及组
4.1 `userdel`
4.2 `groupdel`
5. 账户与组文件解析
5.1 账户信息文件
5.2 账户密码文件
5.3 组账户信息文件
5.4 组账户密码文件
6. 文件及目录权限
6.1 概念
6.2 修改文档属性
6.2.1chmod
6.2.2chown
1. Linux 账户及组的概念
Linux 系统是通过用户的 ID 来识别每个账号,默认 ID 长度为 32 位,从 0 开始,用户的 ID及 UID 限制在 60000 以下,其中 Linux 账户UID分为三种:
root 用户 ( ID 0 )
系统用户 ( ID 1 ~ 499 )
普通用户 ( ID 500以上 )
Linux 系统中的组分为基本组和附加组,一个用户只可以加入一个基本组,但可以同时加入多个附加组。创建用户时,系统默认会自动创建同名的组,并设置用户加入该基本组中。
2. 创建账户及组
useradd命令创建账户,groupadd用来创建组,创建账户和组时需要有管理员权限。下面给出两个命令的使用方法:
2.1 useradd
描述:创建新账户
用法:useradd [选项] 用户名字
选项参数详解
选项
解释
-c
设置账号描述信息,一般为账号全称
-d
设置账号家目录,默认为/home/用户名
-e
设置账户失效日期,格式为 YYYY-MM-DD
-g
设置账户基本组
-G
设置账户附加组,多个附加组用逗号隔开
-M
不创建账户家目录,一般与-s 结合使用
-s
设置账户登录的 shell,默认 bash
-u
指定账户 UID
例1:
useradd -c administrator -d /home/admini -e 2020-01-01 -g root -G bin,adm,mail admin
创建普通用户 admin,全名administrator,家目录/home/admini,失效日期为 2020-1-1,账户基本组 root,附加组bin,adm,mail。
例2:
useradd -s /sbin/nologin -M user1
创建无法登录系统且无家目录的账户user1
2.2 groupadd
描述:创建组账户
用法:groupadd [选项] 用户名字
选项
解释
-g
设置组 ID
例:
groupadd -g 1000 Hello
创建 Hello 组账户,GID 为 1000
id
id root//查看 root 账户的相关信息
3. 修改账户及组
3.1 passwd
描述:更新账户认证信息。
用法:passwd [选项] [账户名称]
参数选项如下:
选项
解释
-l
锁定账户,仅root 可使用此选项
–stdin
从文件或管道读取密码
-u
解锁账户
-d
快速清空账户密码,仅 root 使用
例:
passwd Shawn//修改 Shawn 密码
echo “123456” |passwd --stdin Shawn//设置 Shawn 的密码为 123456
passwd -l Shawn//锁定 Shawn
passwd -u Shawn//解锁
passwd -d Shawn//清空 Shawn 账户密码
3.2 usermod
描述:修改账户信息
用法:usermod [选项] [账户名称]
参数选项如下:
参数
解释
-d
修改账户家目录
-e
修改账户失效日期
-g
修改账户所属基本组
-G
修改账户所属附加组
-s
修改账户登录 shell
-u
修改账户 UID
4. 删除账户及组
4.1 userdel
描述:删除账户及相关文件,如果不加参数只删除账户,不删除账户家目录及文件
用法:userdel [选项] 账户名称
参数选项如下:
参数
解释
-r
删除账户及其相关文件
-f
强制删除账户,即使账户正在使用
4.2 groupdel
描述:删除组账户
5. 账户与组文件解析
5.1 账户信息文件
账户信息文件保存在/etc/passwd中,文件内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
...
该文件共七列,以下是每一列解释。
第一列:账户名称
第二列:密码占位符,x 表示需要密码登录,为空时表示无需密码
第三列:账户 UID
第四列:GID
第五列:账户附加基本信息,一般储存账户全名,联系方式等信息
第六列:家目录位置
第七列:登录系统 shell
5.2 账户密码文件
账户密码文件保存在/etc/shadow文件中,文件内容如下:
root:$1$GC$bLGQXmAa7pjS7TkkHvHel.:18032:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
文件已冒号分开共九列,以下是每一列解释。
第一列:账户名称
第二列:账户密码,账户未设置密码时显示!!,设置密码后会加密显示
第三列:上次修改密码的时间距 1970-01-01 有多少天
第四列:密码最短有效天数,0 表示无限制
第五列:密码最长有效天数,默认99999, 表示无限制
第六列:过期前的警告天数
第七列:密码过期后宽限天数
第八列:账户失效日期,从 1970-01-01 起多少天后账户失效
第九列:暂时保留未使用
5.3 组账户信息文件
组账户信息被保存在/etc/group中,文件内容如下:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
文件共四列,以下为每一列解释。
第一列:组账户名称
第二列:密码占位符
第三列:GID
第四列:这里只显示附加成员信息,基本成员不显示
5.4 组账户密码文件
组账户密码信息被保存在/etc/gshadow,内容如下:
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
文件共四列,以下为每一列解释。
第一列:组账户名称
第二列:组密码
第三列:组管理员
第四列:组成员与/etc/group 第四列一样
通过gpasswd 组名的方式可以为组设置密码,通过gpasswd -A 账户名 组名可以添加组管理员。
gpasswd admin#设置组密码
gpasswd -A mail admin#将 mail 用户设置为组 admin 的管理员
6. 文件及目录权限
6.1 概念
Linux 权限分为读、写、执行三种控制,下面为三种权限对应关系。
数字
字符
文件
目录
4
r
查看文件内容
查看目录下的文件与目录名
2
w
修改文件内容
在目录下增、删、改文件或目录
1
x
可执行,一般为程序或脚本
可以 cd 进入该目录
6.2 修改文档属性
6.2.1chmod
描述:改变文件或目录权限
用法:chmod [选项] 文件或目录
常用选项及解释如下:
选项
解释
–reference=RFILE
根据参考文档的权限设置该文档的权限
-R
递归将所有权限应用于所有的子目录与子文件中
chmod命令参数中,u是属主,g 是属组,o 是其他用户,a 代表所有人。
下面是通过chmod改变文件权限的例子。
chmod u=rwx,g=rwx,o=rwx test.log
chmod 777 test.log
#设置 test.log 文件的主,组,其他用户权限为rwx
chmod a=rw test.log
#所有人对test.log 可读写
chmod g-x,o-wx test.log
#test.log 文件属组去掉执行权限,其他用户去掉写,和执行权限
chmod --reference=old.txt new.txt
#已 old.txt 为标准修改 new.txt 文件的权限
6.2.2chown
描述:修改文件或目录的所有者与所属组。
用法:chown [选项] [所有者]:[所属组] 文件/目录
选项:-R 递归将权限应用于所有子目录于子文件
例:
chown user1:mail install
#修改install文件所有者为 user1,所属组为 mail
chown :root install
#修改 install 文件所属组为 root
chown root install
#修改文件属主为 root