1.用户、组合权限管理
1.1 用户
-
每个使用者:用户标识、密码
- Authentication 认证机制
- Authorization 授权机制
- Audition 审计机制
-
组:用户组,用户容器,便于实现权限分配
-
用户类别:
-
管理
-
普通用户
-
系统用户
-
登录用户
-
用户表示:UserID, UID
-
16bits二进制数字: 0-65535
-
管理员: 0
-
普通用户: 1-65535
- 系统用户: 1-499(Centos6), 1-999(Centos7)
- 普通用户: 500-60000(Centos6), 1000-60000(Centos7)
-
名称解析:名称转换的过程
-
Username <--> UID
-
根据
用户的信息库进行名称解析: /etc/passwd -
[lemon@VM-4-10-centos ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:997:995::/var/lib/chrony:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin syslog:x:996:994::/home/syslog:/bin/false www:x:1000:1000::/home/www:/sbin/nologin mysql:x:1001:1001::/home/mysql:/sbin/nologin lighthouse:x:1002:1002::/home/lighthouse:/bin/bash lemon:x:1003:1003::/home/lemon:/bin/bash tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin redis:x:995:990:Redis Database Server:/var/lib/redis:/sbin/nologin x:x:1004:1004::/home/x:/bin/bash
-
1.2 组
-
组类别1:
- 管理员组
- 普通用户组
- 系统组
- 登录组
-
组标识:GroupID, GID
- 管理员组:0
- 普通用户组: 1-65635
- 系统用户组: 1-499(Centos6), 1-999(Centos7)
- 登录用户登录: 500-60000(Centos6), 1000-60000(Centos7)
-
名称解析:group那么 <--> gid
- 解析库:/etc/group
-
组类别2:
- 用户的主组(基本组)
- 用户的附加组
-
组类别3:
- 私有组:组名同用户名,且只包含一个用户;
- 公共组:组内包含了多个用户;
1.3 认证信息
通过比对事先存储的,与登录时提供的信息是否一致
password:单独存放
- /etc/shadow 用户密码库文件
- /etc/gshadow 组密码库文件
密码存储格式:单向加密,并借助于salt完成
- md5
- sha1
- sha224
- sha256
- sha384
- sha512
1.4 数据库文件
/etc/passwd:用户的信息库
- name:password:UID:GID:GECOS:directory:shell
- name: 用户名
- password: 可以是加密的密码,也可是占位符x;
- UID:
- GID: 用户所属的主组的ID号
- GECOS: 注释信息
- directory: 用户的家目录
- she11:用户的默认shel1,登录时默认she11程序
/etc/shadow: 用户密码
- 用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
/etc/group:组的信息库
- group_name:password:GID:user list
- user_list: 该组的用户成员:以此组为附加组的用户的用户列表
2.添加/删除 用户/用户组
2.1 group相关
groupadd命令:添加组
- groupadd[选项] group_name
- -g GID: 指定GID;默认是上一个组的GID+1;
- -r:创建系统组;
groupmod命令:修改组属性
- groupmod[选项] GROUP
- -g GID: 修改GID;
- -n new_name:修改组名;
groupdel命令:删除组
- groupdel[选项] GROUP
2.2 user相关
useradd命令:创建用户
-
useradd [选项] 登录名
- -u, --uid UID:指定UID;
- -g, --gid GROUP:指定基本组ID,此组得事先存在
- -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 指明用户所属的附加组,多个组之间用逗号分隔;
- -c, --comment COMMENT: 指明注释信息;
- -d, --home HOME_DIR:以指定的路径为用户的家目录; 通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
- -s, --shell SHELL: 指定用户的默认shel1,可用的所有shel1列表存储在/etc/shells文件中
- -r, --system:创建系统用户:
-
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
-
useradd -D: 显示创建用户的默认配置
-
useradd -D 选项: 修改默认选项的值;
修改的结果保存于/etc/default/useradd文件中;
usermod命令:修改用户属性
usermod [选项] 登录
- -u, --uid UID: 修改用户的ID为此处指定的新UID;
- -g, --gid GROUP:修改用户所属的基本组;
- -G, --groups GROUP1[,GROUP2...[,GROUPN]]]: 修改用户所属的附加组:原来的附加组会被覆盖
- -a, --append: 与-G一同使用,用于为用户追加新的附加组;
- -c, --comment COMMENT: 修改注释信息;
- -d, --home HOME_DIR: 修改用户的家目录; 用户原有的文件不会被转移至新位置;
- -m, --move-home: 只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
- -l, --login NEW_LOGIN: 修改用户名;
- -s, --shel1 SHELL: 修改用户的默认she1;
- -L, --lock: 锁定用户密码:即在用户原来的密码字符串之前添加一个"!";
- -U, --unlock:解锁用户的密码;
userdel命令:删除用户
userdel [选项] 登录
删除用户时一并删除其家目录;
2.4 练习
练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001):
练习2::创建用户fedora, 注释信息为"Fedora Core",默认shel1为/bin/tcsh:
练习3: 修改gentoo用户的家目录为/var/tmp/gentoo: 要求其原有文件仍能被用户访问
练习4:为gent oo新增附加组netadmin;
3. 密码管理
3.1 passwd命令
PASSWD(1) User utilities PASSWD(1)
NAME
passwd - update user's authentication tokens
SYNOPSIS
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
- passwd: 修改自己的密码
- passwd USERNAME: 修改指定用户的密码
选项:
- -u, -l: 锁定和解锁用户
- -d: 清楚用户密码串;
- -e DATE: 过期期限,日期;
- -i DAYS: 非活动期限;
- -n DAYS: 密码的最短使用期限;
- -x DAYS: 密码的最长使用期限;
- -w DAYS: 警告期限
--stdin:
- echo "PASSWORD" | passwd 00stin USERNAME
3.2 gpasswd命令
gpasswd [选项] group
- -a USERNAME: 向组中添加用户
- -d USERNAME:从组中移除用户
newgrp命令:临时切换指定的组为基本组;
- newgrp [-] [group]
- -: 会模拟用户重新登录以实现重新初始化其工作环境
- chage命令:更改用户密码过期信息
chage [选项] 登录名- -d
- -E
- -W
- -m
- -M
3.4 id 命令
id命令:显示用户的真实有效ID;
id [OPTION]... [USER]
- -u: 仅显示有效的UID;
- -g: 仅显示用户的基本组ID;
- -G:仅显示用户所属的所有组的ID;
- -n: 显示名字而非ID;
3.5 su 命令
su命令: switch user
登录式切换:会通过读取目标用户的配置文件来重新初始化
- SU - USERNAME
- SU -I USERNAME
非登录式切换:不会读取目标用户的配置文件进行初始化
- SU USERNAME
3.6 其他几个命令
-
chsh: change shell,改变shell或指定用户的shell;
[root@VM-4-10-centos ~]# chsh lemon Changing shell for lemon. New shell [/bin/bash]: /bin/csh Shell changed. [root@VM-4-10-centos ~]# cat /etc/passwd -
chfn:修改finger信息
-
whoami
3.权限管理
1.进程安全上下文
-
ls -l
- rwxrwxrwx:
- 左三位:定义user(owner)的权限
- 中三位:定义group的权限
- 右三位:定义other的权限
-
进程安全上下文:进程对文件的访问权限应用模型
- 进程的属主与文件的属主是否相同,如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的数组;如果是,则应用属组权限;
否则,就只能应用other的权限
2.权限名称
权限:
-
r : read,读
-
w: write, 写
-
x : excute,执行
-
文件:
- r : 可获取文件的数据
- w : 可修改文件的数据
- x : 可将此文件运行为进程
-
目录:
- r : 可使用ls命令获取其下的所有文件列表;
- w : 可修改此目录下的文件列表: 即创建或删除文件;
- x : 可 cd 至此目录中,且可使用ls -l 来获取所有文件的详细属性信息
-
mode: rwxrwxrwx
-
ownership: user, group
3.权限组合机制
| --- | 000 | 0 |
|---|---|---|
| --x | 001 | 1 |
| -w- | 010 | 2 |
| -wx | 011 | 3 |
| r-- | 100 | 4 |
| r-x | 101 | 5 |
| rw- | 110 | 6 |
| rwx | 111 | 7 |
练习:rw-rw-r--, rwxrwxr-x, rwxr-x---,rw-------, rwxr-xr-x
664,775,750,600,755
4.权限管理命令
chmod命令
chmod [option]... MODE[,MODE]... FILE...
chmod [option]... OCTAL -MODE FILE...
chmod [option]... --reference=RFILE FILE...
三类用户:
- u: 属主
- g: 属组
- o: 其他
- a: 所有
-
chmod [option]... MODE[,MODE]... FILE...
MODE表示法:
- 赋权表示法
- chmod u=rwx
- g=
- o=
- a=
- 授权表示法
- u+
- 赋权表示法