Linux账号和权限管理
一. 用户和组的管理 - Linux中用户种类
种类 | 特点 |
root | 是管理员,拥有至高无上的权限,不受限制,UID为0 |
普通用户 | 管理员创建的用户,受权限限制,UID一般从500开始,可以登录系统 |
程序用户 | 安装应用程序,系统创建的,一般UID小于500,一般不可以登录系统,shell一般是/sbin/nologin |
- Linux中组的种类:
种类 | 特点 |
基本组(私有组) | 一个用户只有一个私有组,当用户创建目录和文件的时候,目录和文件默认的属组是基本组 |
附加组(公共组) | 用户可以有多个附加组 |
- 用户的管理:
/etc/passwd #存放了用户的信息
/etc/shadow #存放了用户的密码信息等
-
添加用户账号
useradd命令
useradd [选项]... 用户名
-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
-
设置/更改用户口令
passwd命令
passwd [选项]... 用户名
-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定)
-u:解锁用户帐号
- 修改用户账号的属性 usermod命令
usermod [选项]... 用户名
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
- 删除用户账号 userdel命令
userdel [-r] 用户名 #添加 -r 选项时,表示连用户的宿主目录一并删除
- 用户第一次登陆必须更改密码
chage -d 0 用户名
2.组的管理:
/etc/group #保存组账号基本信息
/etc/gshadow #保存组账号的加密密码信息,很少用
- 添加组账号
groupadd命令
groupadd [-g GID] 组帐号名
- 添加删除组成员 gpasswd命令 用途:设置组帐号密码(极少用)、添加/删除组成员
gpasswd [选项]... 组帐号名
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
- 删除组账号 groupdel命令
groupdel 组帐号名
- 查询账号信息:
id命令
用途:查询用户身份标识
格式:id [用户名]
groups命令
用途:查询用户所属的组
格式:groups [用户名]
finger命令
用途:查询用户帐号的详细信息
格式:finger [用户名]
users、w 、who命令
用途:查询已登录到主机的用户信息
二. 文件和目录的属性:属主、属组、权限
- 文件/目录的权限和归属
A. 访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
B. 归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
- ls -l 执行命令后得结果分析
第一个字符:表示文件或目录的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等。
第2-4个字符:表示属主的权限
第5-7个字符:表示属组的权限
第8-10个字符:表示其它人的权限
- Linux中基本权限分为r(4)、w(2)、x(1)
查看文件/目录的权限和归属
---------------------------------------------------------------------------------
| 权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---------------------------------------------------------------------------------
|字符表示| r | w | x | r | w | x | r | w | x |
---------------------------------------------------------------------------------
|数字表示| 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
---------------------------------------------------------------------------------
|权限分配| 文件所有者 | 文件所属组 | 其他用户 |%2
-
设置文件和目录的权限
chmod命令
格式1:chmod [ugoa] [+-=] [rwx] 文件或目录...
格式2:chmod nnn 文件或目录...
常用命令选项
-R:递归修改指定目录下所有子项的全新
- 设置文件和目录的归属
chown命令
格式:chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
常用命令选项
-R:递归修改指定目录下所有文件、子目录的归属
- 用户账号的初始配置文件
文件来源
新建用户帐号时,从/etc/skel 目录中复制而来
主要的用户初始配置文件
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登录时执行
A.Umask 可以设置新建文件、目录时的默认权限,(默认权限 = 现有默认权限 - 权限掩码)
Umask [权限掩码]
B.附加权限
a)Set位权限:给可执行的程序或脚本文件设置。 SUID----4, SGID----2
执行文件设置了set后,任何用户在执行该文件时,获得该文件属主、属组账号对应的身份。
比如普通用户无法修改/etc/shadow文件,但是却可以修改自己的密码,因为/usr/bin/passwd设置了set权限。
ll /usr/bin/passwd
例: cp /bin/mkdir /tmp/mymkdir
Chmod u+s /tmp/mymkdir
ll /tmp/mkdir
切换到其他用户,/tmp/mymkdir 创建文件(宿主目录下),发现属主为root。而mkdir属主为自己
b)粘滞位:用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限以后,即便用户对该目录写入权限,也不能删除该目录中其他用户的文件数据。例 /tmp , /var/tmp
例: 在/tmp中,使用用户aa创建文件,使用用户bb删除不了
<pre name="code" class="html">[root@localhost ~]# su - vanko
[vanko@localhost ~]$ cd /tmp/
[vanko@localhost tmp]$ mkdir vanko
[vanko@localhost tmp]$ ls -ltr
total 4
drwxrwxr-x 2 vanko vanko 4096 Jan 8 10:09 vanko
[root@localhost ~]# su - xu
[xu@localhost ~]$ cd /tmp
[xu@localhost tmp]$ mkdir xu
[xu@localhost tmp]$ ls -ltr
total 8
drwxrwxr-x 2 vanko vanko 4096 Jan 8 10:09 vanko
drwxrwxr-x 2 xu xu 4096 Jan 8 10:09 xu
[xu@localhost tmp]$ rm -rf vanko
rm: cannot remove `vanko': Operation not permitted
[xu@localhost tmp]$ rm -rf xu