Linux命令-用户、权限管理

概述
  1. 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理

  2. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限

  3. Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限

  4. 在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”

注意:在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统

常用命令
1. 查看当前用户:whoami

该命令用于查看当前系统当前账号的用户名,可通过cat /etc/passwd查看系统用户信息

例如:

HGF@HGF-PC:~$ whoami
HGF

由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份

2. 查看登录用户:who

who命令用于查看当前所有登录系统的用户信息

常用选项含义
-m或am I当前运行终端的相关信息(用户名、登录终端和登录时间)
-q或–count只显示用户的登录账号和登录用户的数量
-H或–heading显示列标题

例1:

HGF@HGF-PC:~/Desktop$ who
HGF      tty7         2019-07-03 14:12 (:0)

例2:

HGF@HGF-PC:~/Desktop$ who -q
HGF
# 用户数=1

或者:

HGF@HGF-PC:~/Desktop$ who --count
HGF
# 用户数=1

例3:

HGF@HGF-PC:~/Desktop$ who -H
名称   线路       时间           备注
HGF      tty7         2019-07-03 14:12 (:0)

或者:

HGF@HGF-PC:~/Desktop$ who --heading
名称   线路       时间           备注
HGF      tty7         2019-07-03 14:12 (:0)
3. 切换用户:su

可以通过su或者su -命令切换用户

注意:su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录

例1:切换到root用户

HGF@HGF-PC:~$ su
密码: 
root@HGF-PC:/home/HGF# 

或者:

HGF@HGF-PC:~$ su root
密码: 
root@HGF-PC:/home/HGF# 

例2:切换到root用户,同时切换目录到/root

HGF@HGF-PC:~$ su -
密码: 
root@HGF-PC:~# 

或者:

HGF@HGF-PC:~$ su - root
密码: 
root@HGF-PC:~# 

例3:切换到普通用户

HGF@HGF-PC:~$ su python
密码: 
python@HGF-PC:/home/HGF$ 

例4:切换到普通用户,同时切换普通用户所在的目录

HGF@HGF-PC:~$ su - python
密码: 
python@HGF-PC:~$ 

注意:在ubuntu平台中,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户,只需加sudo即可操作。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。

例5:Ubuntu下切换到root的简单命令:

HGF@HGF-PC:~$ sudo -s
[sudo] HGF 的密码: 
root@HGF-PC:~# 
4. 退出登录账户: exit
  1. 如果是图形界面,退出当前终端
  2. 如果是使用ssh远程登录,退出登陆账户
  3. 如果是切换后的登陆用户,退出则返回上一个登陆账号

例如:

HGF@HGF-PC:~$ su root
密码: 
root@HGF-PC:/home/HGF# exit
exit
HGF@HGF-PC:~$ 
5. 添加用户账号:useradd

在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样

常用参数含义
-d指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
-m自动建立目录
-g指定组名称

相关说明:

  1. Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户)
  2. 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录
  3. 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的
  4. 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名

例1:

HGF@HGF-PC:~$ sudo useradd -d /home/python python -m
[sudo] HGF 的密码: 
HGF@HGF-PC:~$ cd /home
HGF@HGF-PC:/home$ ls
HGF  python
HGF@HGF-PC:/home$ groups python
python : python

创建python用户,如果/home/python目录不存在,就自动创建这个目录,同时用户属于python组

例2:

HGF@HGF-PC:~$ sudo useradd -d /home/python python -g HGF -m
[sudo] HGF 的密码: 
HGF@HGF-PC:~$ cd /home
HGF@HGF-PC:/home$ ls
HGF  python
HGF@HGF-PC:/home$ groups python
python : HGF

创建一个用户名字叫python,主目录在/home/python,如果主目录不存在,就自动创建主目录,同时用户属于HGF组

注意:可以使用cat /etc/passwd命令查看系统当前用户名

6. 设置用户密码:passwd

在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户密码,用户也可以直接使用该命令来修改自己的密码,而无需在命令后面使用用户名
例如:

HGF@HGF-PC:/home$ sudo passwd python
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
7. 删除用户:userdel

使用userdel命令可以删除想要删除的用户

例1:删除python用户,但不会自动删除用户的主目录

HGF@HGF-PC:/home$ sudo userdel python
HGF@HGF-PC:/home$ ls
HGF  python

例2:删除用户,同时删除用户的主目录

HGF@HGF-PC:/home$ sudo userdel -r python
userdel: python 邮件池 (/var/mail/python) 未找到
HGF@HGF-PC:/home$ ls
HGF
8. 查看有哪些用户组

方法一:

HGF@HGF-PC:/home$ cat /etc/group

方法二:

HGF@HGF-PC:/home$ groupmod +三次tab键
9. 添加、删除组账号:groupadd、groupdel

使用groupadd命令新建组:

HGF@HGF-PC:/home$ sudo groupadd python

使用groupdel命令删除组:

HGF@HGF-PC:/home$ sudo groupdel python
10. 查看用户在哪些组:groups

使用groups命令可以查看用户在哪个组

HGF@HGF-PC:/home$ groups python
python : python
11. 修改用户帐号信息:usermod

当我们使用usermod -l可以修改用户的用户名

HGF@HGF-PC:/home$ sudo useradd testaccount -m
HGF@HGF-PC:/home$ cat /etc/passwd

在passwd文件中我们可以看到用户信息,如下:

testaccount:x:1001:1001::/home/testaccount:

现使用usermod修改用户的用户名

HGF@HGF-PC:/home$ sudo usermod -l newaccount testaccount
HGF@HGF-PC:/home$ cat /etc/passwd

再次查看passwd文件,可以看到用户名已经被修改:

newaccount:x:1001:1001::/home/testaccount:

当我们使用usermod -g可以修改用户所在的默认用户组,使用usermod -G可以完成向其它组添加(-G一般配合-a来使用)

例1:将用户python修改到HGF组

HGF@HGF-PC:/home$ groups python
python : python
HGF@HGF-PC:/home$ sudo usermod -g HGF python
HGF@HGF-PC:/home$ groups python
python : HGF

例2:给用户python添加一个HGF组

HGF@HGF-PC:/home$ groups python
python : python
HGF@HGF-PC:/home$ sudo usermod -a -G HGF python
HGF@HGF-PC:/home$ groups python
python : python HGF

例3:为创建的普通用户添加sudo权限

sudo usermod -a -G sudo 用户名
12. 修改文件所有者:chown

使用chown命令将1.txt文件所有者由HGF改为python

HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-- 1 HGF HGF 0 7月   3 20:37 1.txt
HGF@HGF-PC:~/Desktop$ sudo chown python 1.txt
[sudo] HGF 的密码: 
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-- 1 python HGF 0 7月   3 20:37 1.txt
13. 修改文件所属组:chgrp
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-- 1 python HGF 0 7月   3 20:37 1.txt
HGF@HGF-PC:~/Desktop$ sudo chgrp python 1.txt
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-- 1 python python 0 7月   3 20:37 1.txt
14. 修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法

a. 字母法

字母法的主要语法为:chmod u/g/o/a +/-/= rwx 文件

字母含义
uuser 表示该文件的所有者
ggroup 表示与该文件的所有者属于同一组( group )者,即用户组
oother 表示其他以外的人
aall 表示这三者皆是
+增加权限
-撤销权限
=设定权限
rread表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容
wwrite表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件
xexcute表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录

例1:在1.txt文件中为other用户添加可执行权限

HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-- 1 HGF HGF 0 7月   3 20:44 1.txt
HGF@HGF-PC:~/Desktop$ chmod o+x 1.txt
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-x 1 HGF HGF 0 7月   3 20:44 1.txt

例2:同时进行设定拥有者、同组者以及其他人的权限

HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rw-rw-r-x 1 HGF HGF 0 7月   3 20:44 1.txt
HGF@HGF-PC:~/Desktop$ chmod u+x,g+x,o+w 1.txt
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rwxrwxrwx 1 HGF HGF 0 7月   3 20:44 1.txt

b.数字法

rwx这些权限也可以用数字来代替

字母说明
r读取权限,数字代号为 “4”
w写入权限,数字代号为 “2”
x执行权限,数字代号为 “1”
-不具任何权限,数字代号为 “0”

例1:

HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rwxrwxrwx 1 HGF HGF 0 7月   3 20:44 1.txt
HGF@HGF-PC:~/Desktop$ chmod 751 1.txt
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rwxr-x--x 1 HGF HGF 0 7月   3 20:44 1.txt

例2:

HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rwxrwxrwx 1 HGF HGF 0 7月   3 20:44 1.txt
HGF@HGF-PC:~/Desktop$ chmod u=rwx,g=rx,o=r 1.txt
HGF@HGF-PC:~/Desktop$ ls -lh
总用量 0
-rwxr-xr-- 1 HGF HGF 0 7月   3 20:44 1.txt

例1和例2分别是使用数字法和字母法修改文件权限,两者效果等同

注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值