目录
用户和组:
用户组管理:
解析库文件:
用户和组:
系统上的每个进程(运行程序)都作为特定用户运行每个文件都由特定用户拥有用户对文件和目录的访问受到限制运行中的进程所相关的用户来确定进程可以访问的文件和目录
用户的类别:
管理员 root
普通用户
登录用户
系统用户 /sbin/nolodin
用户标识符:UID
管理员 0普通用户 1-65535系统用户 1-499(Centos6),1-999(Centos7)登录用户 500-60000(Centos),1000-60000(Centos7)名称解析:名称转换 username<----->UID根据名称解析库:/etc/passwd
组:用户组,用户的容器
组标识符: GID
管理员组 0普通用户组 1-65535系统用户组 1-499(Centos6),1-999(Centos7)登录用户组 500-60000(Centos),1000-60000(Centos7)名称解析:groupname<----->GID解析库:/etc/group组类别2:用户基本组;用户附加组组类别3:私有组:组名同用户名,且只包含一个用户;共有组:组内包含了多个用户;
id 查看当前登录用户的ID信息
认证信息:认证信息提前保存在系统中,通过比对与事先保存的认证信息,是否一致;password:/etc/shadow /etc/gshadow
密码使用策略:
- 使用随机密码;最短长度不低于8位;应该使用大写字母、小写字母、数字、标点符号四类字符中至少三类;定期更换;
用户组管理:
用户组管理相关命令(只有root可以使用)
groupadd:添加组
groupadd [options] group
-g GID:指定GID;默认上一个组的GID+1;
-r :指定创建系统组
[root@localhost tmp]# groupadd -g 1000 qwer
[root@localhost tmp]# grep 'qwer' /etc/group
qwer:x:1000:
groupmod:修改组
groupmod [options] GROUP
-g GID :修改GID
-n new_name:修改组名
[root@localhost tmp]# groupmod -g 2048 qwer
[root@localhost tmp]# grep 'qwer' /etc/group
qwer:x:2048:
groupdel:删除组
groupdel [options] GROUP
[root@localhost tmp]# groupdel qwer
useradd:创建用户
useradd [options] LOGIN
useradd -D
useradd -D [options]
-u UID:指定UID
-g GID:指定基本组,这个组得事先存在
-G groupname:指定附加组,多个附加组用逗号分隔
-c:指定注释信息
-d:指定用户家目录,默认创建时复制/etc/skel并重命名,如果指定家目录事先存在,则不会复制环境配置文件
-s shell:指定用户默认shell。默认是使用$SHELL,可用的所有shell列表存储在shell/etc/shells文件中
-r:指定创建系统用户 创建用户时默认的配置文件 /etc/login.defs
-D:显示或者修改用户的默认配置 修改的结果保存于/etc/default/useradd文件中
usermod:修改用户属性
-u uid:修改uid
-g gid:修改gid
-G groupname:修改附加组,原有的附加组会被覆盖
-a:与-G一起使用,用于为用户追加新的附加组
-c:修改注释信息
-d:修改用户的家目录,家目录中原有的文件不会被移动到新目录
-m:与-d一起使用,用于将原有家目录移动为新的家目录
-l:修改用户名
-s:修改用户的默认shell
-L:锁定用户密码 /etc/shadow !!(即在用户原来的密码字符串之前添加一个“ ! ”)
-U:解锁用户密码
userdel:删除用户
-r:删除用户时一并删除其·家目录
id:显示用户的真和有效ID
id [OPTION]... [USER]
-u:仅显示有效的UID
-g:仅显示用户的基本组ID
-G:仅显示用户所属的所有组的ID
-n:显示名字而非ID
passwd:修改用户自己的密码passwd USERNAME:修改指定用户的密码,但仅root有次权限
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
-l 锁定
-u 解锁
-n 两次修改密码的最小天数
-x 两次修改密码的最大天数
-w 密码到期的提前提醒天数
-s 用户的密码状态
-i 密码过期多少天用户被禁用
– stdin 非交互式创建密码
echo “PASSWORD” | passwd - -stdin USERNAME
查看当前登录的用户信息:
[root@localhost tmp]# useradd -u 1005 -g distro mandriva
[root@localhost tmp]# id mandriva
uid=1005(mandriva) gid=2016(distro) groups=2016(distro)
查看文件的owner:
[root@localhost ~]# ll /home/
drwx------. 2 mageia mageia 62 Feb 6 04:45 linux
drwx------. 2 1005 distro 62 Feb 6 04:41 mandriva
drwx------. 2 openstack clouds 62 Feb 6 05:14 openstack
drwx------. 2 slackware distro 62 Feb 6 05:01 slackware
drwx------. 2 wangcai sysadmins 62 Feb 6 05:38 wangcai
解析库文件:
解析库文件详解
/etc/passwd (每个字段什么意义都要记住)
/etc/passwd中一行对应着一个用户,每行记录又被冒号(:)分割为七个字段
root:x:0:0:root:/root:/bin/bash
用户名:代表用户账号的字符串
密码信息:占位符 X
用户标识符:UID
组标识符:GID
注释信息:字段记录着用户的一些个人情况
用户家目录 :也就是用户的起始工作目录
登录shell
/etc/shadow
root:$6$KwEWPXjk$q5INDd6jnqcVAvOxy1CVkP6FrEmgky7Kj0UYUvb/ZIGqhBl73N4SCyioEmLgjhxmsQSP6yULtkWCogn4/vWww1:19008:0:99999:7:::
用户名:是与/etc/passwd文件中的登录名相一致的用户账号
密码串:$6$KwEWPXjk$ 前两个$中代表加密算法,后两个$中是加密因子
$6$开头的,表明是用SHA-512加密$1$表明是用MD5加密$2$是用Blowfish加密$5$是用SHA-256加密
最后一次密码修改时间:表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如:在SCOLinux中,时间起点是1970年1月1日。
最小间隔时间:指的是两次修改口令之间所需的最小天数
最大间隔时间:指的是口令保持有效的最大天数
告警时间:从系统开始警告用户到用户密码正式失效之间的天数
不活动时间:用户没有登录活动但账号仍能保持有效的最大天数
失效时间:字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号了,也就不能再用来登陆了。
标志位:
sudo命令详解
sudo是Linux下常用的允许普通用户使用超级用户权限的工具
sudo的配置文件是:/etc/sudoers
编辑配置文件命令:visudo 专门来编辑/etc/sudoers 需要在root下执行,给普通用户提权限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
用户 主机=(以什么身份) 可以使用的命令
nebula ALL=(root) /usr/bin/passwd,/usr/sbin/useradd
在普通用户下执行提权命令时,前提是普通用户有密码
sudo commond
sudo执行完命令之后 会在/var/log/secure中记录日志
设置Tom用户可以添加用户及修改用户密码
#创建Tom用户,并为其创建密码
[root@localhost tmp]# useradd Tom
[root@localhost tmp]# echo "111111" | passwd --stdin Tom
Changing password for user Tom.
passwd: all authentication tokens updated successfully.#修改配置文件,为Tom添加特殊权限useradd、passwd,参考root用法
[root@localhost tmp]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Tom ALL=(root) /usr/bin/passwd,/usr/sbin/useradd#切换到Tom用户,验证权限
[root@localhost tmp]# su - Tom #切换到Tom用户
[Tom@localhost ~]$ sudo -l #查看此用户拥有的特殊权限We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.[sudo] password for Tom: #验证Tom用户密码(111111)
Matching Defaults entries for Tom on localhost:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset,
env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
LC_MESSAGES", env_keep+="LC_MonETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin:/bin:/usr/sbin:/usr/binUser Tom may run the following commands on localhost:
(root) /usr/bin/passwd, /usr/sbin/useradd
[Tom@localhost ~]$ sudo useradd Justin
[Tom@localhost ~]$ tail -l /etc/passwd
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
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
T:x:1000:1000::/home/T:/bin/bash
Tom:x:1001:1001::/home/Tom:/bin/bash
Justin:x:1002:1002::/home/Justin:/bin/bash[Tom@localhost ~]$ sudo passwd Justin
[sudo] password for Tom: #密码输入错误
Sorry, try again.
[sudo] password for Tom:(111111)
Changing password for user Justin. #修改Justin的密码
New password:(222222)
BAD PASSWORD: The password is a palindrome
Retype new password:(222222)
passwd: all authentication tokens updated successfully.
[Tom@localhost ~]$ logout
[root@localhost tmp]# tail /var/log/secure #查看安全日志 /var/log/secure
Feb 5 20:17:13 localhost useradd[17762]: new user: name=Tom, UID=1001, GID=1001, home=/home/Tom, shell=/bin/bash
Feb 5 20:18:41 localhost passwd: pam_unix(passwd:chauthtok): password changed for Tom
Feb 5 20:23:30 localhost su: pam_unix(su-l:session): session opened for user Tom by root(uid=0)
Feb 5 20:23:59 localhost sudo: Tom : TTY=pts/1 ; PWD=/home/Tom ; USER=root ; COMMAND=list
Feb 5 20:27:54 localhost sudo: Tom : TTY=pts/1 ; PWD=/home/Tom ; USER=root ; COMMAND=/sbin/useradd Justin
Feb 5 20:27:54 localhost sudo: pam_unix(sudo:session): session opened for user root by root(uid=0)
Feb 5 20:27:54 localhost useradd[17824]: new group: name=Justin, GID=1002
Feb 5 20:27:54 localhost useradd[17824]: new user: name=Justin, UID=1002, GID=1002, home=/home/Justin, shell=/bin/bash
Feb 5 20:27:54 localhost sudo: pam_unix(sudo:session): session closed for user root
Feb 5 20:29:03 localhost su: pam_unix(su-l:session): session closed for user Tom



