/etc/passwd用于保存用户的帐户基本信息:
当一个用户没设置密码则无法登陆
如果在/etc/passwd里创建用户是创不好的,虽然可以查到该用户,但没有创建用户的家目录和用户组,能切换用户是因为分配了shell
人本身就是用户 家庭类似于组
原生家庭是私有组 干爸干妈是附加组
用户是用户,组是组,所有组默认是普通组
用户和组通过gid关联即passwd中的gid跟group的gid匹配
/etc/group用于保存组的基本信息:
字段1:组的名称(默认情况下跟用户名一样)
字段2:密码占位符“x”
字段3:组的ID号(默认情况下跟uid一致)
字段4:该组是user1,user2和user3的附加组
> useradd -c “hello” –d /home/user1 –s /sbin/nologin user111 //-c指定描述信息–d指定家目录-s指定登陆shell 指定家目录不需要手动创建,手动创建权限会报错,直接指定就会创建且无问题
> useradd -u 2000 -g it user1 //指定用户user的uid为2000组为it
> useradd -s /sbin/nologin -G root Mary //指定用户Mary的登陆shell,组为root
> useradd –p redhat user10 *此方法不是创建用户一起创建密码创了也登陆不进去
-aG | 追加一个附加组 |
---|---|
-L | 锁定用户 |
-o | 修改用户id变成非唯一的值 |
-U | 解锁用户 |
-m | 移动家目录,与-d一起使用 |
–g | 指私有组 |
-r | 删除家目录和邮箱 |
---|
-g | 指定gid |
---|
-n | 指定新的组名 |
---|
-g | 指定组 |
---|---|
-a | 添加用户 |
-d | 删除用户 |
-l | 列出组内的用户 |
-p | 清空用户 |
> usermod –u 2022 user111 //给用户user111修改uid为2022 usermod –G it1 user1
> //给用户设置附加组it1(-g是修改私有组 –G设置附加组) usermod –aG it1 user1
> //-G设置新附加值但之前附加组都要去掉;-aG追加附加组,之前的会保留如果不加a则之前的附加组要被删掉 usermod –L
> user1//锁定用户登陆不进去 userdel user1 //删除用户但未删除用户家目录和邮箱 userdel-r
> user2//删除user2家目录和邮箱 邮箱在cd /var/spool/mail
> gpasswd group1 //给group1设置密码
> newgrp group1 //临时登陆group1组。组是有权限的,但别人不想让你一直在组里就让你临时待在组里
删除组删不掉私有组但可以删附加组 uid是在最大的uid上+1 默认最大的uid和gid都是60000
因为如果把前面的用户删了,有可能没删干净遗留一些文件,再创新用户用之前的uid则文件又属于新用户了. groupadd group1
//创建group1组 groupadd –g 1006 group2 //指定group2组的gid为1006
创用户手动指定组一定要事先创建组
用于保存用户的密码信息:
字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:最近一次修改密码的时间,表示从1970.01.01至今的天数
字段4:密码的最短使用天数,默认值为0,没有要求
字段5:密码的最长有效天数,默认值为99999
字段6:密码即将到期警告天数,默认值为7
字段7:在密码过期之后账号保持活动的天数,指定天数后账号被锁定,成为无效
字段8:帐号失效时间,默认值为空,以1970.01.01的天数表示
字段9:保留字段(未使用)
下图显示了相关的密码期限参数,可以通过chage命令对其进行密码期限的调整
语法:
chage [选项] 用户
#chage -m 0 -M 90 -W7 -I 14 user3 分别修改用户密码的最短期限,最长期限,警告周期和失效期限
#chage -d 0 user3 强制要求用户在下一次登录时更新密码
#chage -l user3 显示用户密码的的信息
#chage -E 2020-10-10 user3 用户将于2020-10-10到期(YYYY-MM-DD格式)
ps aux |grep vim 进程拥有人一般取决于谁来运行进程
ps |aux 查看进程
每一个文件都有一个uid和gid
任何进程运行时都带一个uid和一个或多个gid标识符
通常决定于哪个用户执行这个进程
三种访问类别:
运行的进程跟文件有着同样的uid(user)
运行的进程跟文件有着同样的gid(group)
其它进程(other)
进程uid继承用户uid
进程除了有uid信息还有gid信息,gid是看用户gid是多少
多个gid信息:一个用户可有多个附加组
最终都是通过进程来访问文件
如果UID匹配,用户权限适用
否则,如果GID匹配,组权限适用
如果都不匹配,其它权限适用
先匹配拥有人,拥有人不同在匹配拥有组,如果都不匹配就是其他人访问
如何匹配身份:1.你当前是谁2.你访问什么3.你访问的拥有人是谁
为什么匹配权限:不同身份权限不同
查看文件和目录的权限
ls -l 文件名
ls -ld 目录名
-rw-r–r--. 1 root root 2484 Mar 18 00:04 /etc/passwd
文件类型 访问权限 连接数 所属人 所属组 大小 修改时间 文件名
访问权限:九个栏位是权限,三个三个是一组分别是拥有人拥有组其他人
权限分配 文件所属人 文件所属组用户 其他用户
字符表示 r w x r w x r w x
权限项 读 写 执行 读 写 执行 读 写 执行
数字表示 4 2 1 4 2 1 4 2 1
:代表普通文件 d:目录
l:链接文件 b和c分别代表块设备和字符设备,还有其他特殊的文件p和s
权限对文件和目录的影响
权限 对文件的影响 对目录的影响
r (读) 可以读取文件的内容 可以列出目录的内容(文件名)看不见权限详细信息
w(写) 可以更改文件的内容 可以创建或删除目录中的任一文件
x(执行) 可以作为命令执行文件 可以进入目录(还需要r权限才能读目录内容)
rx 进入目录看权限详细信息,目录一般来说有rx权限才有意义
修改权限要会修改拥有人拥有组和对应身份权限
符号方式修改文件权限
chmod命令用于更改文件对于某类用户的操作权限
chmod [-R] whowhatwhich FILE…
-R:递归,将目录里文件文件一并修改
数字方式修改文件权限
使用三个数字(nnn)模式
chmod nnn FILE…
通过把数值相加来计算权限
第一个数字代表所属主(u)的权限
第二个数字代表属组(g)的权限
第三个数字代表其它人(o)的权限
举例如下:
增加文件属主的执行权限(x)
#chmod u+x test
去除文件属主与属组的写权限(w)
#chmod u-w,g-w test
设置其他用户的文件权限为可执 行
#chmod o=x test
设置属主完全控制,属组和其他人读权限
#chmod 744 test
所有用户家目录权限默认700
chmod 66 passwd 少写一位系统会在前面补0,系统认为权限是066
chown命令用于设置文件的属主和属组
命令格式:chown [-R] OWNER[:GROUP] FILE…
chgrp命令用于设置文件属组
命令格式:chgrp [-R] GROUP FILE…
只有root可以修改文件的拥有人,root和文件的拥有人可以修改文件的拥有组,前提是用户需要在组里面。
例子:
#chown –R :user4 data/ 把data/目录下所有文件拥有组改为user4,data目录也一起修改
#chown user1 test 设置文件test的属主为用户user1
#chown :it2 test 设置文件test的属组为用户组it2
#chgrp it2 test 效果同上
#chown user3:it3 test 设置文件test的属主为user3,并设置文件的属组为it3
#chown user4 passwd 修改文件拥有人
#chgrp user5 passwd 修改文件拥有组
#chown user1:user4 passwd修改拥有人拥有组
#chown :user4 passwd 修改拥有组