Andy Niu Help
1.0.0.0
|
变量 | |
用户名和密码 | |
查询用户登录信息 | |
用户的增删改 | |
用户身份切换 | |
详细描述
变量说明
查询用户登录信息 |
1、查询当前登陆的用户 [root@localhost rc.d]# w 17:49:10 up 1:31, 5 users, load average: 0.37, 0.16, 0.23 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root :0 - 16:19 ?xdm? 23.23s 0.06s /usr/bin/gnome-session root pts/1 :0.0 16:20 1:23m 0.01s 0.01s bash root pts/2 192.168.1.100 16:22 52:21 0.13s 0.13s -bash root pts/3 192.168.1.100 16:57 51:45 0.01s 0.00s vi aaa root pts/4 192.168.1.100 16:57 0.00s 0.09s 0.09s -bash [root@localhost rc.d]# who root :0 2015-12-28 16:19 root pts/1 2015-12-28 16:20 (:0.0) root pts/2 2015-12-28 16:22 (192.168.1.100) root pts/3 2015-12-28 16:57 (192.168.1.100) root pts/4 2015-12-28 16:57 (192.168.1.100) [root@localhost rc.d]# whoami root [root@localhost rc.d]# who am i root pts/4 2015-12-28 16:57 (192.168.1.100) 2、区别如下: w show who is logged on and what they are doing who show who is logged on whoami print effective userid who am i print actual userid Consider, when a user logs in as a root across the network, both the command whoami and who am i will show you root. However, when a user abc logs in remotely and runs su – root, whoami will show root whereas who am i will show abc 3、lastlog 查询所有用户或者某一个用户,最后一次的登陆地址和登录时间,如果用户从来没有登录过,显示 **Never logged in** [root@localhost ~]# lastlog Username Port From Latest root pts/5 192.168.1.100 Tue Dec 29 10:03:18 -0800 2015 bin **Never logged in** daemon **Never logged in** 4、last对于登录过的用户,显示登陆有关的信息。 [root@localhost ~]# last root pts/5 192.168.1.100 Tue Dec 29 10:03 still logged in root pts/4 192.168.1.100 Mon Dec 28 16:57 still logged in root pts/3 192.168.1.100 Mon Dec 28 16:57 still logged in root pts/2 192.168.1.100 Mon Dec 28 16:22 still logged in root pts/2 :0.0 Mon Dec 28 16:21 - 16:21 (00:00) root pts/1 :0.0 Mon Dec 28 16:20 still logged in root :0 Mon Dec 28 16:19 still logged in root :0 Mon Dec 28 16:19 - 16:19 (00:00) reboot system boot 2.6.18-194.el5 Mon Dec 28 16:18 (17:53) zhanxin pts/1 :0.0 Wed Jul 1 22:47 - down (00:02) zhanxin :0 Wed Jul 1 22:46 - down (00:02) 5、另外id和finger也能显示当前登陆的用户信息,如下: [root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) [root@localhost ~]# finger Login Name Tty Idle Login Time Office Office Phone root root *:0 Dec 28 16:19 root root pts/1 17:47 Dec 28 16:20 (:0.0) root root pts/2 17:15 Dec 28 16:22 (192.168.1.100) root root pts/3 17:15 Dec 28 16:57 (192.168.1.100) root root pts/4 9 Dec 28 16:57 (192.168.1.100) root root pts/5 Dec 29 10:03 (192.168.1.100)
用户名和密码 |
1、登录Linux主机的时候,我们使用的是用户名,而Linux使用UID和GID来标识用户的。在passwd可以看到UID和GID,如下: [root@2 ~]# more /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 passwd每行表示一个用户,有7个字段 2、passwd每行中的第二个字段是登录密码,这里都是x,真正的密码保存在/etc/shadow,如下: root:$6$dC4C06mrthJsxgWE$g7SlxiQvqB7oQRLSQBInr7iNVDreRKPYxlqpq9cbW7CM14bsgF4kwKFcpiu.E8n6QyaJxMX4okJId1VEGjCkl1:16266:0:99999:7::: bin:*:15628:0:99999:7::: daemon:*:15628:0:99999:7::: adm:*:15628:0:99999:7::: shadow每行表示一个用户对应的密码,有9个字段,第二个字段是密码,并且加密了。 3、Linux如果忘记密码,怎么办? 忘记普通用户的密码,这个很简单,root登录进去,使用passwd命令修改密码。 忘记root用户的密码,有两个办法: a、重新启动进入用户维护模式,Linux系统给予root权限的bash接口,以passwd修改密码 b、以Live CD开机挂载根目录,修改shadow文件,root的密码字段清空,重启后,root登录不需要密码,然后重置密码 4、与用户对应,用户组的信息分别在文件 /etc/group 和 /etc/gshadow
用户的增删改 |
1、添加用户 useradd niu 注意:useradd是二进制程序,而adduser是useradd的软连接。 2、设置密码 passwd niu 输入密码,然后确认 使用ssh远程登录,确认 ssh [email protected] 3、删除用户 userdel niu 4、修改用户名称 usermod -lniu2 niu 把用户名niu修改为niu2
用户身份切换 |
1、考虑下面的需求,当前以普通用户登陆,先查看shadow的内容,如下: -bash-3.2$ cat /etc/shadow cat: /etc/shadow: Permission denied 2、这个文件只有root用户才有权限,怎么办? 3、第一种方法,使用sudo,以其他用户的身份执行命令,通常是使用root的身份来执行命令。如下: -bash-3.2$ sudo -uroot cat /etc/shadow [sudo] password for niu: niu is not in the sudoers file. This incident will be reported. 4、这里报错,原因是用户niu 没有借用其他用户身份的权限,需要配置权限。 使用visudo在root下面的一行添加niu的信息,如下: ## Allow root to run any commands anywhere root ALL=(ALL) ALL niu ALL=(ALL) ALL 再次执行,sudo -uroot cat /etc/shadow 5、第二种方法,使用su,切换到其他身份,如下: -bash-3.2$ env|grep -E -i 'mail|home' MAIL=/var/spool/mail/niu PWD=/home/niu HOME=/home/niu -bash-3.2$ su root Password: bash: alais: command not found [root@localhost niu]# env|grep -E -i 'mail|home' MAIL=/var/spool/mail/niu PWD=/home/niu HOME=/root 这个时候发现,虽然用户niu的身份已经切换到了root,但是环境变量还是用户niu的环境变量,怎么办? 6、使用su - root(中划线后面有空格),如下: -bash-3.2$ env|grep -E -i 'mail|home' MAIL=/var/spool/mail/niu PWD=/home/niu HOME=/home/niu -bash-3.2$ su - root Password: -bash: alais: command not found [root@localhost ~]# env|grep -E -i 'mail|home' MAIL=/var/spool/mail/root HOME=/root 7、特别注意一点,使用su 改变的只是有效用户,并没有改变真实用户。whoami显示有效用户,而 who am i 显示真实用户 -bash-3.2$ who am i niu pts/3 2015-12-29 11:42 (192.168.1.101) -bash-3.2$ whoami niu -bash-3.2$ su root Password: bash: alais: command not found [root@localhost niu]# who am i niu pts/3 2015-12-29 11:42 (192.168.1.101) [root@localhost niu]# whoami root 特别注意:用户niu的提示符是-bash-3.2$,而用户root的提示符是[root@localhost niu],这里的niu是一个目录,不要搞混淆了。 8、通过上面的测试知道,使用su,切换到root,可能会导致比较大的危险,因此建议使用sudo
Copyright (c) 2015~2016, Andy Niu @All rights reserved. By Andy Niu Edit.