Linux命令-用户、权限管理
用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。
在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
1.1.1查看当前用户:whoami
whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
1.1.1查看登录用户:who
who命令用于查看当前所有登录系统的用户信息。
who //显示当前登录系统的用户
who -lh //显示用户登录来源
who -m //显示当前用户、登录终端、登陆时间
who -q //用户的登录账号和登录用户数量
who -u //显示列标题
linux系统root用户可强制踢制其它登录用户,首先可用$w命令查看登录用户信息,显示信息如下:
[root@Wang ~]# w
10:01:23 up 1:23, 3 users, load average: 0.71, 0.58, 0.57
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 - 09:59 1:53 0.01s 0.01s -bash
root pts/0 :0.0 10:01 0.00s 0.03s 0.00s w
wangbo pts/2 192.168.0.196 09:42 18:50 0.01s 0.01s -bash
[root@Wang ~]#
强制踢人命令格式:pkill -kill -t tty
解释:
pkill -kill -t 踢人命令
tty 所踢用户的TTY
如上踢出liu用户的命令为: pkill -kill -t pts/1
只有root用户才能踢人,至少我测试的是这样的。如果同时有二个人用root用户登录,任何其中一个可以 踢掉另一个。任何用户都可以踢掉自己-_-
如何踢掉用终端登陆的用户,如:
root pts/0 :0.0 10:01 0.00s 0.03s 0.00s w
首先用命令查看pts/0的进程号,命令如下:
[root@Wang ~]# ps -ef | grep pts/0
root 15846 15842 0 10:04 pts/0 00:00:00 bash
root 15876 15846 0 10:06 pts/0 00:00:00 ps -ef
root 15877 15846 0 10:06 pts/0 00:00:00 grep pts/0
踢掉用户的命令:
kill -9 15846
1.1.1退出登录账户:exit
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
1.1.1添加用户账号:useradd
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下:useradd [参数] 新建用户账号
-d<登入目录> 指定用户登入时的启始目录。
-m 自动建立用户的登入目录。
-g<群组> 指定用户所属的群组。
相关说明:
·Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
·每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
·用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
·如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
cat /etc/passwd 查看系统当前用户名
1.1.1设置用户密码:passwd
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
删除用户:userdel
1.1.1切换用户:su
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root用户的登陆和管理时间,提高了安全性。
1.1.1查看有哪些用户组
方法一:
cat /etc/group
方法二:
groupmod +三次tab键
1.1.1添加、删除组账号:groupadd、groupdel
groupadd新建组账号groupdel组账号cat /etc/group查看用户组
1.1.1修改用户所在组:usermod
使用方法:usermod -g用户组 用户名
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-a <append group> 将用户追加到上边 -G中提到的附加组中,并不从其他组中删除此用户
1.1.1查看用户在哪些组
groups 用户
1.1.1为创建的普通用户添加sudo权限
新创建的用户,默认不能sudo,需要进行一下操作
sudo usermod -a -G adm用户名
sudo usermod -a -G sudo用户名
�1.1.1usermod -g与-G的区别
-g用来制定这个用户默认的用户组 g 更换组
-G一般配合'-a'来完成向其它组添加 G 加入组
1.1.1修改文件权限:chmod
chmod修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx文件
u user表示该文件的所有者
g group表示与该文件的所有者属于同一组者,即用户组
o other表示其他以外的人
a all表示这三者皆是
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R递归test目录下所有文件加777权限
1.1.1修改文件所有者:chown
chown 用户 file1.txt
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
1.1.1修改文件所属组:chgrp
chgrp [-cfhRv] [所属群组] [文件或目录...]