Linux用户类别
- root:这是系统特权用户类,他们都有访问root登录账号的权限
- owner:这是实际拥有文件的用户
- group:这是共享文件的组访问权的用户类的用户组名称
- world:这是不属于上面3类的所有其他用户。
/etc/passwd 文件格式:
muming:x:1000:1000:muming,,,:/home/muming:/bin/bash
用户名:密码:用户id:用户所属组id:用户信息描述:用户家目录:用户启动shell位置
/etc/shadow文件格式:
muming:$6$i2nMsSGD$jgW0XjgE66dqevwoAfSE65lLrD13/k.Xrtiz/UlwE/BF//WLm6sAIzp96pngc1TCzKrhetjNcTQG0zQHiT5C4/:17769:0:99999:7:::
- 用户名
- 密码(加密过的密码,*或!打头表示不能登录)
- 密码最后一次被修改的时间(从1970年1月1日到改日的天数)
- 从上一次修改密码到下一次允许进行修改要经历的天数
- 经过多少天后用户必须重新修改密码
- 在密码到期前多少天向用户发出必须修改密码的警告
- 账号到期日
- 保留
/etc/group文件格式:
groupname:password:gid:user_list
例如:muming:x:1000:
- groupname:组名称
- password:组密码
- gid:组识别号
- user_list:该组用户清单
/etc/gshadow文件格式:
muming:!::
组管理
- 组管理命令
命令名称
|
用途
|
命令举例
|
groupadd
|
添加组
|
groupadd g_study
groupadd -g 777 mygroup
-g 参数直接指定gid
|
gpasswd
|
管理用户组信息,如设置密码,添加
删除组成员
|
gpasswd g_study
gpasswd -a study g_study
-a 添加用户进组
-d 从组里删除用户
|
groupmod
|
修改用户组信息
|
groupmod -n studygroup
(新名)g_study(旧名)
|
groupdel
|
删除用户组
|
groupdel studygroup
|
groups
|
显示用户所属的用户组
|
groups study
|
用户权限
- 用户管理命令
命令名称
|
用途
|
命令举例
|
useradd或adduser
|
添加用户
|
useradd study
useradd -g 组名 用户
(将用户添加到指定组)
useradd -g 默认组 -G 其他组1,其 他组2,... 用户
一个用户可以属于多个组
|
passwd
|
为用户设置密码
|
passwd study
passwd -d study(删除密码)
|
usermod
|
修改用户信息
|
usermod -c study(改后的别名)study
usermod -g study(要修改成的组的组名)test(要修改的用户)
将test用户的默认组修改为study
|
userdel
|
删除用户
|
userdel -r study(-r连主目录一起删除)
|
su
|
用户切换
|
su root(未将当前目录切换到root用户的目录下)
su - root(将目录切换到了root用户目录下)
|
id
|
查看用户的UID、GID及所归属的用户组
|
id study
|
useradd命令不能够在/home下创建用户主目录
1:有时候直接使用:
useradd hadoop
并不能够在/home下创建hadoop的文件夹,这是由于/etc/login.defs中的假如在/etc/login.defs中的CREATE_HOME被设置为no。
2:解决方案 — > 加上一个“-m”
useradd -m hadoop
在man useradd文档中,会发现,-m可以在系统不允许创建用户主目录的情况之下创建用户主目录。
权限管理
Linux文件权限位
- 文件权限位的表示:-rwxrwxrwx
- 第一位表示文件的类型,-表示普通文件,d表示目录文件,l表示符号连接文件
- 接下来三位表示owner用户的读、写、执行权限
- 紧跟着三位表示group用户的读、写、执行权限
- 最后三位表示world用户的读、写、执行权限
Linux文件权限管理
- 设置文件所属的用户以及所属的组(chown,chgrp)
- 给文件赋予相应的权限位(chmod)
- chown
chown用来更改文件所有者与组拥有者,其一般格式为:
chown [option] owner [:group] file
将abc及其子目录下的所有文件的所有者改为jjl:
chown jjl abc
将abc文件的所有者改为jjl,组拥有者改为study:
chown jjl:study abc
将文件夹递归更改
chown -R root:root 文件夹名称
- chgrp
chgrp用来更改文件的组拥有者,其一般格式为:
chgrp [option] group file
将文件abc的组拥有者改为study:
chgrp study abc
将abc及其子目录下的所有文件的组拥有者改为study:
chown -R study abc
- chmod
chmod命令格式为:
chmod [option] mode files...
mode表示格式:
- 数字表示:[n][n][n] r = 4 w = 2 x = 1
rwx: 4 + 2 + 1; r-x: 4 + 1; rw-:4 + 2
- 文本方式:[ugoa][+-=][rwx]
u -- 该档案的拥有者
g -- 与该档案的拥有者属于同一群体(group)者;
o -- 其他以外的人;
a - 所有
+ -- 增加权限
- -- 去掉权限
= -- 设定权限
-R : 递归更改
为文件abc的组拥有者增加rw权限:
chmod g+rw abc
为abc文件的用户拥有者去除x权限:
chmod u-x abc
指定文件abc的其他用户权限位rw-:
chmod o=rw-
将文件abc及其子目录底下的所有文件的全体用户增加x权限
chmod -R a+x abc
- set uid(suid)、set gid(sgid)
- /usr/bin/passwd -rwsr-xr-x
- /etc/shadow -r--------
- suid权限仅对可执行程序有效即具有x权限
- 本权限针对运行中的进程
- 运行中的进程将具有该程序拥有者的权限
- s出现在组权限的x位置上时,称为sgid
- sticky bit(sbit):粘着位
/tmp drwxrwxrwt
仅对目录有效
防止文件或目录被非属主删除
对目录:
x:进入目录
w:创建文件/文件夹
r:列出文件夹里面的内容
该位置出现了S权限,这不是一个有效的权限,因为要使用s权限,suid权限仅对可执行程序有效即具有x权限才可用
按如下方式修改即可:
如果想让用户和用户组都拥有s权限,则输入如下命令:
修改文件夹权限位为t
- umask
0002的含义:表示当创建一个文件夹时,其他用户应该去掉2这个权限,也就是w权限。
对于文件夹:
mode = 777 & ~umask
对于文件:
mode = 666 & ~umask