Linux命令详解 三
linux用户和组的属性与权限
本章结构
1.用户账号和组账号概述
2.用户账号和组账号管理
3.查询账号信息
4.查看目录或文件的属性
5.设置目录或文件的权限
6.设置目录或文件的归属
前言
在linux中一切都是文件(文件夹和硬件设备是特殊的文件),如果有可能尽量使用文本文件。文本文件是人和机器能理解的文件,也成为人和机器进行交流的最好途径。由于所有的配置文件都是文本,所以你只需要一个最简单的编辑器就可以修改。由于修改文本文件如此简单,所以linux系统本身肯定要加以规范。这就引出了用户(组)和权限这2个概念。而这2个概念的引入,完美的保证了linux的安全性,同时没有添加复杂性。由于一切皆为文件。所以linux引入了3个文件来管理用户(组), /etc/passwd存放用户信息,/etc/shadow存放用户密码信息,/etc/group存放组信息,然后在文件系统中的每个文件的文件头里面添加了用户和文件之间的关系信息。
一、用户和组的信息查看
1.用户:在linux下,用户分为三类:超级用户(root)、普通用户、程序用户。
超级用户:uid=0
程序用户:rhel5/6,uid=1-499; rhel7,uid=1-999
普通用户:rhel5/6,uid=500-65535; rhel7,uid=1000-60000
超级用户有且只有一个,且不能被代替!
匿名用户(nobody):普通用户中权限最小的
2.组:用户权限的集合称为组
私有组:伴随着用户的创建而创建,与用户同名
共有组:附加组 直接创建空组,可以添加已有用户,给组设置权限,该组中的所有用户都具备此权限。
3.uid和gid:用户和组的标识号,具有唯一性
4.用户账号文件/etc/passwd:保存用户名称,宿主目录,登录shell等基本信息
用户账号文件 /etc/shadow:保存用户的密码,账号有效期等信息
添加用户账号 useradd
-u:指定uid
-d:创建家目录指定位置
-e:指定失效时间
-g:指定基本组
-g:指定共有组
-m:不创建家目录
-s:指定可以从shell终端登录
/sbin/nologin状态下 用户无法直接登录和被切换登录
用户被锁定状态下 无法直接登录,可以从root用户切换登录
passwd命令
-l:锁定账号
-u:解锁账号
-d:清除账号
-s:查看账号是否被锁
不指定用户名时,就是就该当前账号的密码!
usermod 修改用户账号的属性
-u:指定uid
-d:创建家目录指定位置
-e:指定失效时间
-g:指定基本组
-g:指定共有组
-m:不创建家目录
-s:指定可以从shell终端登录
-l:锁定
-u:解锁
userdel 删除用户账号
-r 连用户的宿主目录一并删除
用户账号的初始配置文件
新建用于账号时,从 /etc/skel目录中复制而来
主要的用户初始配置文件
~/.bash_prolile
~/.bashrc
~/.bash_logout
隐藏文件
profile 环境变量 进入bash才被加载
bashrc 不进入bash就加载
组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
groupadd:添加组账号
gpasswd:添加删除组成员命令
gpasswd -a:向组内添加一个用户
gpasswd -d :从组内删除一个用户
gpasswd -m :定义组内成员列表,以逗号分隔
groupdel:删除组账号
查询账号信息
groups 查询用户所属的组
id 查询用户身份标识
w、who、user命令:查询已登录到主机的用户信息
二、文件、目录的权限和归属
1.访问权限
1)读取r:允许查看文件内容、显示目录列表
2)写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
3)可执行x:允许运行程序,切换目录
2.归属(所有权)
1)属主:拥有改文件或目录的用户账号
2)属组:拥有该文件或目录的组账号
-rwxr-xr-x. 1 root root 5343 8月 2 2017 znew
- 数据文件
d 目录
l 连接文件
c 设备文件(字符)
b 块设备文件
rwx r-x r-x 权限
rwx 属主权限 (能读能写能执行)
r-x 属组权限内 (能读不能写能执行)
r-x 所有*限 other 其他 (能读不能写能执行)
root 属主
root 属组
5343 大小 单位:字节
8月 2 2017 创建时间
普通数据文件不能执行,最高权限666,文件夹的最高权限777
设置文件和目录的权限chmod
chmod命令
chmod [ugoa] [+ - =] [rwx] 文件或目录 或 chmod nnn 文件或目录
u、g、o、a分别表示属主、属组、其它用户、所有用户
+、-、=分别表示怎家、去除、设置权限
nnn表示3位8进制数
常用选项
-r:递归修改指定目录下所有子项的权限
设置文件和目录的归属chown
chown命令
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录 或 chown 属主.属组 文件或目录
常用选项
-r:递归修改指定目录下所有文件、子目录的归属
权限掩码umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限就为新建的文件或者目录的权限
umask设置: umask 022
umask查看: umask
示例
将umask设为000,新建目录或者文件,查看权限
将umask设为022,新建目录或者文件,再查看权限
总结
linux用户和组的权限去管理,内容不算多,就是有几条新增的命令需要我们记忆。要注意的点就是使用gpasswd -m命令添加用户到组内时,会覆盖原有组内的用户,所以这个命令最好是在空组下使用,一般我们都是用gpasswd -a 一个一个添加用户,避免一些不必要的麻烦。第二点就是在文件、目录的权限和归属中,注意chomd nnn的使用,r=4,w=2,x=1
以简便的方式设置用户和组的权限。