1. /etc/passwd
[
root@niejicai-linux ~]# ls /etc/passwd
/etc/passwd
[
root@niejicai-linux ~]# 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
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
pulse:x:498:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
saslauth:x:497:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
用户名:密码:uid:gid:用户解析说明:家目录:shell 7段
(普通用户uid从500开始)
由 : 分隔成7个字段
(1) 用户名 规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法
(2) x 放密码,安全起见放到 /etc/shadow
(3) uid (0-4294967294=2^32-2) root uid=0 1-499系统保留 普通账户是从500开始
(4) gid 对应 /etc/group
(5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等 用 chfn 更改
(6) 用户家目录
(7) shell /bin/bash, /bin/false, /sbin/nologin
2./etc/shadow
[
root@niejicai-linux ~]# cat /etc/shadow
如$6$为SHA-512加密;如$5$为SHA-256加密;如$1$为MD5加密
root:$1
$6/9kA2.A$wse8xHHG4ncrGpmyWmoe31:16750:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
halt:*:15980:0:99999:7:::
mail:*:15980:0:99999:7:::
uucp:*:15980:0:99999:7:::
operator:*:15980:0:99999:7:::
games:*:15980:0:99999:7:::
gopher:*:15980:0:99999:7:::
ftp:*:15980:0:99999:7:::
nobody:*:15980:0:99999:7:::
dbus:!!:16749::::::
usbmuxd:!!:16749::::::
vcsa:!!:16749::::::
rtkit:!!:16749::::::
avahi-autoipd:!!:16749::::::
pulse:!!:16749::::::
haldaemon:!!:16749::::::
ntp:!!:16749::::::
apache:!!:16749::::::
saslauth:!!:16749::::::
postfix:!!:16749::::::
abrt:!!:16749::::::
gdm:!!:16749::::::
sshd:!!:16749::::::
tcpdump:!!:16749::::::
niejicai:$1$vgh46sJv$1HzLg49W/Y.gJZiqAkgKz/:16749:0:99999:7:::
hacluster:!!:16751::::::
xiaonie:!!:16751:0:99999:7:::
使用 : 分隔9个字段
(1)
用户名
(2)
密码,用SHA-512加密过,不可逆
(3)
上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’.
(4)
要过多少天才可以更改密码, 0 不限制
(5
)密码多少天后到期,默认是99999,可以理解为永远不需要改
(6)
密码到期前的警告期限
(7)
账号失效期限,到期后过多少天锁定帐号
(8)
账号的生命周期
(9)
作为保留用的,没有什么意义
3. groupadd
新增/删除用户和组
groupadd 组名 添加组
groupadd -g gid号 组名 给添加组指定gid号(如不指定,递增创建gid)
groupdel 组名 (如果组内有用户,不能删除)
[
root@niejicai-linux ~]# groupadd grp1
[
root@niejicai-linux ~]# tail /etc/group
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
sshd:x:74:
tcpdump:x:72:
slocate:x:21:
niejicai:x:500:
haclient:x:493:
xiaonie:x:501:
grp1:x:502:
[
root@niejicai-linux ~]# tail /etc/gshadow
stapusr:!::
stapsys:!::
stapdev:!::
sshd:!::
tcpdump:!::
slocate:!::
niejicai:!::
haclient:!::
xiaonie:!::
grp1:!::
[
root@niejicai-linux ~]# tail /etc/group
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
sshd:x:74:
tcpdump:x:72:
slocate:x:21:
niejicai:x:500:
haclient:x:493:
xiaonie:x:501:
grp1:x:502: 默认也是从500开始
[
root@niejicai-linux ~]#
[
root@niejicai-linux ~]# groupadd grp3 增加组
[
root@niejicai-linux ~]# groupdel grp3 删除组
[
root@niejicai-linux ~]# tail /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user4:x:508:500::/home/user4:/bin/bash
[
root@niejicai-linux ~]# groupdel niejicai
groupdel: cannot remove the primary group of user 'niejicai' 如果组内有用户,是不能删除的。
4. useradd
useradd -u uid号 用户名 指定uid号
useradd -g gid号 用户名 给新建用户指定gid号(gid必须之前就存在)
useradd -G gid号 用户名 添加附属组
useradd -d 路径 用户名 指定家目录
useradd -M 用户名 不建立家目录 (会指定家目录,但没有创建)
如需要手动创建家目录,需要往家目录拷贝一些文件:
cp /etc/skel/.b* /home/用户名 手动将环境变量文件拷贝到用户家目录中
useradd -s shell路径 用户名 指定shell
userdel -r 删除用户的家目录
[
root@niejicai-linux ~]# useradd user10
[
root@niejicai-linux ~]# tail /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user4:x:508:500::/home/user4:/bin/bash
user10:x:5506:5507::/home/user10:/bin/bash
[
root@niejicai-linux ~]# useradd -u 505 user20
[
root@niejicai-linux ~]# tail -5 /etc/group
user1:x:503:
user2:x:5505:
grp10:x:5506:
user10:x:5507:
user20:x:505:
[
root@niejicai-linux ~]#
useradd -u 5562 -g 500 user41
[
root@niejicai-linux ~]# tail /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user4:x:508:500::/home/user4:/bin/bash
user10:x:5506:5507::/home/user10:/bin/bash
user20:x:505:505::/home/user20:/bin/bash
user41:x:5562:500::/home/user41:/bin/bash
[
root@niejicai-linux ~]#
useradd -u 5561 -g 500 -G user1,user2 user42
-G 添加附属组
[
root@niejicai-linux ~]# tail /etc/passwd
niejicai:x:
500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user4:x:508:500::/home/user4:/bin/bash
user10:x:5506:5507::/home/user10:/bin/bash
user20:x:505:505::/home/user20:/bin/bash
user41:x:
5562:500::/home/user41:/bin/bash
user42:x:
5561:500::/home/user42:/bin/bash
[
root@niejicai-linux ~]# useradd user4
[
root@niejicai-linux ~]# ls /var/spool/mail/
niejicai user1 user2 user4 user42
root user10 user20 user41 xiaonie
[
root@niejicai-linux ~]#
userdel -r user4 -r把家目录和邮件一块删除
[
root@niejicai-linux ~]# ls /var/spool/mail/
niejicai user1 user2 user41 xiaonie
root user10 user20 user42
[
root@niejicai-linux ~]# useradd -u 508 -g 500 -G user1,505 user4
.
[
root@niejicai-linux ~]# id user4
查看id
uid=508(user4) gid=500(niejicai) groups=500(niejicai),503(user1),505(user20)
[
root@niejicai-linux ~]# userdel -r user4
[
root@niejicai-linux ~]# ls /home/
niejicai user10 user20 user42 xiaonie
user1 user2 user41 user55
[
root@niejicai-linux ~]# grep user5 /etc/passwd
user5:x:508:500::/home/user55:/bin/bash
[
root@niejicai-linux ~]#
useradd -u 508 -g 500 -M user4 不创建家目录(会指定家目录,但是没有创建家目录)
[
root@niejicai-linux ~]# tail /etc/passwd
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user10:x:5506:5507::/home/user10:/bin/bash
user20:x:505:505::/home/user20:/bin/bash
user41:x:5562:500::/home/user41:/bin/bash
user42:x:5561:500::/home/user42:/bin/bash
user4:x:508:500::/home/user4:/bin/bash
[
root@niejicai-linux ~]#
su - user4 没有创建家目录的时候,如果su 过去的时候,就会提示报错!
su: warning: cannot change directory to /home/user4: No such file or directory
-bash-4.1$ ^C
-bash-4.1$ mkdir /home/user4
mkdir: cannot create directory `/home/user4': Permission denied
-bash-4.1$ exit
logout
[
root@niejicai-linux ~]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
[
root@niejicai-linux ~]#
cp -v /etc/skel/ .b* /home/user4
cp: omitting directory `/etc/skel/'
`.bash_history' -> `/home/user4/.bash_history'
`.bash_logout' -> `/home/user4/.bash_logout'
`.bash_profile' -> `/home/user4/.bash_profile'
`.bashrc' -> `/home/user4/.bashrc'
[
root@niejicai-linux ~]#
su - user4 恢复正常登陆
[
user4@niejicai-linux ~]$ pwd
/home/user4
[
user4@niejicai-linux ~]$ ls -la
total 40
drwxr-xr-x 2 root root 4096 Nov 16 15:01 .
drwxr-xr-x. 11 root root 4096 Nov 16 15:00 ..
-rw------- 1 root root 20013 Nov 16 15:01 .bash_history
-rw-r--r-- 1 root root 18 Nov 16 15:01 .bash_logout
-rw-r--r-- 1 root root 176 Nov 16 15:01 .bash_profile
-rw-r--r-- 1 root root 176 Nov 16 15:01 .bashrc
[
user4@niejicai-linux ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
[
user4@niejicai-linux ~]$ cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
[
user4@niejicai-linux ~]$ useradd -u 508 -g 500 -s /sbin/nologin user6
普通用户不给它登陆
5. usermod 更改用户
-u 更改用户的uid
-s 更改shell
-d 更改家目录
-L
锁定账户
-U
解锁账户
-g 指定gid
-G 添加附属组
[
root@niejicai-linux ~]# usermod -d /home/user444 user4
[
root@niejicai-linux ~]# su - user4
su: warning: cannot change directory to /home/user444: No such file or directory
-bash-4.1$ exit
logout
[
root@niejicai-linux ~]# mv /home/user4 /home/user444
[
root@niejicai-linux ~]#
su user4
[
user4@niejicai-linux root]$ logout
bash: logout: not login shell: use `exit'
[
user4@niejicai-linux root]$ exit
exit
[
root@niejicai-linux ~]#
usermod -u 509 user4
[
root@niejicai-linux ~]# tail -l /etc/passwd
niejicai:x:500:500:niejicai:/home/niejicai:/bin/bash
hacluster:x:496:493:heartbeat user:/var/lib/heartbeat/cores/hacluster:/sbin/nologin
xiaonie:x:501:501::/home/xiaonie:/bin/bash
user1:x:502:503::/home/user1:/bin/bash
user2:x:5505:5505::/home/user2:/bin/bash
user10:x:5506:5507::/home/user10:/bin/bash
user20:x:505:505::/home/user20:/bin/bash
user41:x:5562:500::/home/user41:/bin/bash
user42:x:5561:500::/home/user42:/bin/bash
user4:x:509:500::/home/user444:/bin/bash
[
root@niejicai-linux ~]#
id user4
uid=509(user4) gid=500(niejicai) groups=500(niejicai)
[
root@niejicai-linux ~]#
6. chfn (了解,几乎用不到)。
[
root@niejicai-linux ~]# chfn user4
Changing finger information for user4.
Name []: user4
Office []: ddddddddddd
Office Phone []: aaaaaaaaaaa
Home Phone []: 111111111111111
Finger information changed.
[
root@niejicai-linux ~]# tail -4 /etc/passwd
user20:x:505:505::/home/user20:/bin/bash
user41:x:5562:500::/home/user41:/bin/bash
user42:x:5561:500::/home/user42:/bin/bash
user4:x:509:500:user4,
ddddddddddd,aaaaaaaaaaa,
111111111111111:/home/user444:/bin/bash
7. 创建、修改用户密码
passwd
创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
mkpasswd 生成密码的工具,安装 expect包
(了解)
[
root@niejicai-linux ~]# yum install -y expect
Keepass介绍
keepass (记住密码) 必须要去官网下载
8.su
[
user4@niejicai-linux root]$ pwd
/root
[
user4@niejicai-linux root]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[
user4@niejicai-linux root]$
[
root@niejicai-linux ~]# su -c "touch /tmp/user4.txt" - user4
[
root@niejicai-linux ~]# ls -l /tmp/user4.txt
-rw-r--r-- 1 user4 niejicai 0 Nov 16 22:21 /tmp/user4.txt
[
root@niejicai-linux ~]# su -c "touch /tmp/user4.tx9t" user4
[
root@niejicai-linux ~]# ls -l /tmp/user4.txt*
-rw-r--r-- 1 user4 niejicai 0 Nov 16 22:21 /tmp/user4.txt
[
root@niejicai-linux ~]# ls -l /tmp/user4*
-rw-r--r-- 1 user4 niejicai 0 Nov 16 22:22 /tmp/user4.tx9t
-rw-r--r-- 1 user4 niejicai 0 Nov 16 22:21 /tmp/user4.txt
[
root@niejicai-linux ~]#
加减号,是当前用户的环境变量
visudo 编辑/etc/sudoers 配置文件 没有命令需安装 yum install -y sudo
[
root@niejicai-linux ~]#
visudo
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
/bin/ls这个一定要写绝对路径
user4 ALL=(root) /bin/ls user4用户临时拥有root的身份,去执行的 ls 这条命令 。
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, S
在没有添加这条命令之前,
user4 ALL=(root) /bin/ls ,去测试一下,结果如下
[
root@niejicai-linux ~]# su - user4
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 user4:
user4 is not in the sudoers file. This incident will be reported.
添加了这条命令之后,再去测试一下结果如下:
[
root@niejicai-linux ~]# su - user4
[
user4@niejicai-linux ~]$ sudo /bin/ls /root/
[sudo] password for user4:
12 4.txt 999.txt jicai
234 5.txt anaconda-ks.cfg niejicailinux.txt
2.txt 6.txt install.log
3.txt 7.txt install.log.syslog
[
user4@niejicai-linux ~]$
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user4 ALL=(root)
NOPASSWD: /bin/ls, /bin/su
不需要密码,到可以登录,
user4 以root用户的身份去执行 ls ,su命令,登录的时候不需要密码。
xiaonie ALL=(root) NOPASSWD: /bin/ls, /bin/su
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
测试如下:
[
root@niejicai-linux ~]# su - user4
[
user4@niejicai-linux ~]$ sudo /bin/su -
[
root@niejicai-linux ~]# exit
logout
[
user4@niejicai-linux ~]$ sudo su -
10.sudo -i 也可以登录到root ?
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
其实,还有几个类似的用法:
sudo /bin/bash : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。
sudo su - : 这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su - ,这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的,但是也有不同,sudo 只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。
所以,我们再来总结一下:
sudo su - 约等于 sudo -i
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。
11.怎么设置,不给root远程登陆呢!
有时为了特殊需求,只允许普通账户登陆Linux,而不允许root账户登陆,而普通账户登陆后,然后再su 到root下是可以的。打开sshd的配置文件
vim /etc/ssh/sshd_config 加入一行:
PermitRootLogin no
重启sshd服务: service sshd restart
测试如下:
[root@niejicai-linux ~]# vim /etc/ssh/sshd_config
# Authentication:
#LoginGraceTime 2m
PermitRootLogin no 去掉注释 保存既可以,
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
测试远程root登录不上去!!!
11.用户登录的时候,远远的缩短了输入密码的时间:
[
root@niejicai-linux ~]# vim /etc/ssh/sshd_config
#ShowPatchLevel no
UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
[
root@niejicai-linux ~]# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
测试:
login as: root
root@192.168.100.218's password: 反应就很快了。
Last login: Mon Nov 16 22:29:36 2015 from 192.168.100.219