【十八掌●基本功篇】第二掌:Linux之用户和文件权限总结
2018-02-27 15:33
399 查看
一、用户相关文件
1. /etc/passwd文件
这个passwd文件是Linux用户信息文件。文件格式说明如下:root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ... ... hadoop:x:500:500::/home/hadoop:/bin/bash
文件中每一行是一个用户,各列以:分割,各列的含义如下:
第一个是用户名称
第二个是密码,但是这个字段现在已经不用了,密码存在在/etc/shadow文件中了,所以这里固定写x就是了。
第三个是UID,UID是用户的唯一标示。
UID | 说明 |
---|---|
0 | 是系统管理员的UID |
1\~499 | 是系统用户的UID |
500 \~ 65535 | 是一般用户使用的UID,Linux 2.6.x内核可以支持最大UID为2\^32-1 |
第五个是用户信息说明信息,默认是和用户名一样的值。
第六个是用户的Home目录路径。
第七个是用户默认的Shell路径,Linux的Shell类型很多,但是大多数是/bin/bash。
2. /etc/shadow文件
这个shadow文件是用户密码信息文件,文件格式说明如下:root:$6$QDRTibzVfjM.GBM7$AwsFKXFBGdKxHf7NzSN3Evu5NBtUoNSDt2bw/aXdcnQOK5N9kKJqPZ6uGFE3C9zasUl9UwrgJhzF7rAPJXkXl/:16981:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: hadoop:$6$MiYjLlgY$Oqrs15mLyzULRD.m4e2WmTEp9Aq.CziOhpCXW.U4LypK4wfQKww/RR6re3L0r.hOB2IZpc1zTyHGH9vpy9bKh1:16982:0:99999:7:::
文件中每行是一个用户,每行用:分割形成9个列。以下是各个列的说明:
第一列是用户名,用户名与/etc/passwd文件中的用户名对应。
第二列是密码。密码是经过加密过的,系统不同计算规则不同。
第三列是最后一次修改密码的日期,这里是16982,意思是从1970-01-01那天之后16982天的日期。
第四列是密码不可更新的天数,就是在设置密码后,N天之内不能再次修改,防止频繁修改密码,如果是0,就是随时可以修改密码。
第五列是密码必须修改的天数,就是在设置密码后,N天后必须修改密码,不然会变成过期状态。这里是一堆九,大约是273年。
第六列是密码更改必须修改前多少天发出警告,这里是7天。
第七列是密码过期后N天内还可以使用,不过过期后使用时会强制要去修改密码,如果在过期N天后还没有修改密码,那账号就不能再使用了。
第八列是账号失效时间,指定日期之后,就无法再使用了。
第九个是预留的列,暂时没用。
3. /etc/group文件
这个group文件是记录用户组信息的,文件格式如下:root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon hadoop:x:500:
文件中一行是一个用户组,每行用:分割为四列:
第一列为组名称
第二列为组密码,组密码已经移动到/etc/gshadow文件中了,所以这个固定是x。
第三列是GID,是用户组的唯一ID,/etc/passwd用户信息中的第四个字段就对应于这里的GID。
第四列是这个用户组下的用户名称,多个用户名以逗号分割,如果想将某个用户添加到一个组中,就在目标组这一行,添加上这个用户名。
4.Linux用户登录流程
当一个客户端使用用户名、密码登录Linux系统时,Linux系统会按照以下流程进行验证:(1) 寻找/etc/passwd文件中是否有此账号,没有就报错。
(2) 如果有就读取这个用户对应的UID、GID、shell设置信息。
(3) 然后拿着UID去/etc/shadow文件中验证密码。
(4) 验证通过后,就进入对应的shell环境。
二、Linux用户管理、用户组管理
1. 添加用户
(1) useradd 用户名 是添加一个用户,用户的各个信息采用默认值。(2) 新用户的默认值可以用 useradd –D 命令来查看
[root@localhost ~]# useradd -D GROUP=100 默认的用户最GID HOME=/home 默认的Home目录路径 INACTIVE=-1 默认的密码失效日,为-1是永远不会失效 EXPIRE= 账号失效日 SHELL=/bin/bash 用户默认使用的shell SKEL=/etc/skel 用户Home目录的内容模板目录 CREATE_MAIL_SPOOL=yes 是否主动创建邮箱
(3) useradd 用户名 命令执行后,没有指定密码,所以新用户状态是被封锁的,用户无法登陆,需要设置密码。
2.设置密码
(1) passwd 用户名 是为指定用户修改密码,如果只有passwd,就是修改当前用户的密码。(2) 关于密码长度和复杂度要求,root可以设置任何长度和复杂度的密码,但是用其他账号是不允许设置短密码和低复杂度的密码的。
3. 修改用户
修改用户信息用usermod命令,各个参数如下:-c :后面接用户的说明,即 /etc/passwd 第五列的说明列,可以加入一些用户的说明。 -d :后面接用户的Home目录,即修改 /etc/passwd 的第六列; -e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八列! -f :后面接天数,为 shadow 的第七列。 -g :后面接初始用户组,修改 /etc/passwd 的第四个列,即是 GID 的列! -G :后面接次要用户组,修改这个使用者能够支援的用户组,修改的是 /etc/group -a :与 -G 合用,可‘增加次要用户组的支援’而非‘设定’! -l :后面接用户名称。是修改用户名称, /etc/passwd 的第一列! -s :后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。 -u :后面接 UID 数字!即 /etc/passwd 第三列的资料; -L :暂时将使用者的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码列。 -U :将 /etc/shadow 密码列的
4.删除用户
userdel命令是用来删除用户。userdel –r 用户名 是将用户和用户相关的所有数据全部删除。
三、Linux文件权限管理
1. Linux中文件权限划分
Linux系统中的目录和文件的访问身份分为三类:owner、group、others,分别简写为:o、g、oowner是文件的所有者。
group是文件所有者所在组的其他成员。
others就是不在所有者的所在组的其他用户。
每个身份对文件的权限又分为:read、write、execute。分别简写为:r、w、x,数字表示分别为:4,2,1
2. ls –s 命令显示的信息
[root@localhost ~]# ls -l total 104 drwxr-xr-x. 2 root root 4096 Jun 30 01:55 Downloads -rw-r--r--. 1 root root 50010 Jun 30 01:40 install.log
显示的结果信息,一行是一个目录或者一个文件,每行用空格分隔为七列:
第一列是权限信息:这部分的类似于 drwxr-xr-x 可以分为四部分:
(1) 第一个字符是表示文件类型,可以为以下几种类型
字符 | 含义 | 字符 | 含义 |
---|---|---|---|
- | 文件 | b | 存储设备,如硬盘 |
d | 目录 | c | 串口设备,如键盘、鼠标 |
l | 链接文件 |
(3) 第一组定义了文件所有者对文件所拥有的权限
(4) 第二组为同用户组的用户对文件所拥有的权限
(5) 第三组为其他组用户对文件所拥有的权限
第二列是连接信息
第三列是所有者是哪个用户
第四列是文件所属用户组,一个所有者用户可能会属于多个组,这个属性是表面文件属于哪个组。
第五列是文件大小,单位默认是Byte。
第六列是最后修改日期,如要显示完整的时间格式,ls命令可以用参数 –l –full-time
第七列是目录名或者文件名。如果名字前面有个.就说明这个是一个隐藏文件。
3. 修改文件的权限
(1) 修改文件的权限用命令chmod来执行,有两种权限定义方式:数据方式和符号方式。(2) 数字方式修改文件权限
像上面说说的,用三组rwx字符就可以表述出文件的owner、group、others三种身份的用户所拥有的权限信息。
而read用4表示,writer用2表示,execute用1表示;rwx可以用[4+2+1]=7表示。r-x可以用[4+1]=5表示。
那么某一个文件的三个身份的权限信息就可以用三个数字表示。
例如:要将1.sh文件的权限设置为所有者可读可写可以执行,同组可读可执行不可写,其他组的用户没有权限。
chmod 750 1.sh
(3) 符号类型修改文件权限
命令 | 分组 | 操作 | 权限 | |
---|---|---|---|---|
chmod | u g o a | + (增加) - (减去) = (设置) | r w x | 文件或者目录 |
例如:要将1.sh文件的的所有用户添加可执行限:chmod a+x 1.sh
4. 修改文件的所有者
(1) 修改文件的所有者用命令 chown 用户名 文件/目录(2) 修改文件的所属组命令chgrp 用户组 文件/目录
(3) 修改文件的所有者和所属组用命令 chown 用户名:用户组 文件/目录
相关文章推荐
- linux用户文件权限详解-精品总结(二)
- linux用户文件权限详解-精品总结(一)
- Linux文件权限学习总结
- Linux帮助信息获取用户文件权限管理(下)
- Linux系统管理命令: 管理用户和文件权限
- Linux 用户、用户组、文件权限,常用的操作,整理放在这里
- LINUX下的用户访问授权,文件权限
- Linux中用户的管理及文件的权限
- Linux入门:文件权限、用户、用户组
- linux管理-用户与文件权限
- 浅谈Linux用户权限管理之三(文件与权限的设定)
- Linux C学习小总结(二)- 文件与目录(文件夹)权限的区别
- linux管理用户和文件权限
- Linux用户、用户组和文件权限控制的学习
- 浅谈Linux用户权限管理之三(文件与权限的设定)
- Linux帮助信息获取用户文件权限管理(上)
- linux用户和文件权限的管理
- linux创建用户 限制权限-用户(User)和用户组(Group)配置文件详解
- Linux权限详解:用户、用户组及文件权限
- 掌握Linux的用户(组),权限,文件精妙的三角关系,和强大的三级帮助系统