Linux用户和权限

介绍:

          Linux操作系统是一个多用户、多任务的操作系统,它允许多个用户同时登录到系统,使用系统资源。 在Linux系统中,拥有最大权限的账户名为:root(超级管理员) ,root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。一个组下可以有多个用户,且每个用户都至少属于一个组,

1.用户和组的介绍

用户名:用来识别用户的名称,可以是字母、数字组成的字符串,区分大小写。

密码:用于验证用户身份的特殊验证码

用户标识(UID):用来表示用户的数字标识符

用户主目录:用户的私人目录,也是用户登录系统后默认所在的目录

组:具有相同属性的用户属于同一个组

组标识(GID):用来表示组的数字标识符

2.用户和组相关文件

2.1用户信息文件 /etc/passwd

  配置文件信息如下:vim /etc/passwd

所创建的用户信息都存放在/etc/passwd文件中,通过cat查看文件,以下是部分用户截图。

[root@localhost /]# 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

2.2 影子文件 /etc/shadow文件

由于所有用户对/etc/passwd均有读取权限,为了增强安全性,用户经过加密之后的口令都放在了/etc/shadow文件中,该文件只对root用户可读,大大提高了系统的安全性。

[root@localhost /]# cat /etc/shadow

root:$5$N0SybT82Ug/$4zvOteSVzwLsnGPZ2IdQqcnyJOOWskiDcJ01BjzYCm2::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:

2.3组信息文件 /etc/group和组密码文件 /etc/gshadow

1.查看组信息文件命令:cat /etc/group

配置组信息文件命令:vim /etc/group

2.查询组密码文件命令: /etc/gshadow文件

配置组密码文件命令: vim /etc/group

2.4 查看用户属于哪个组

(1)groups [username]

(2)id [username]

2.5 查看组包含哪些用户

(1)getent group 组名

(2) grep '^组名:' /etc/group | cut -d: -f4

2.6 查询用户所在目录

getent命令用于查看系统的数据库中的相关记录

[root@192 home]# getent passwd test1

test1:x:54323:54331::/home/test:/bin/bash

3.用户组管理

3.1 创建组

groupadd [选项] 组名

-g 指定组ID

[root@localhost /]# groupadd group1

[root@localhost /]# tail group1  /etc/group
[root@localhost /]# tail  /etc/group
avahi:x:70:
postdrop:x:90:
postfix:x:89:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
qiuchuanhao:x:1000:
test1:x:1001:
group1:x:1002:

3.2 修改组

groupmod [选项] 组名

-g 修改组ID

示例:将group1的组id修改为54332

[root@192 /]# groupmod -g 54332 group1

-n 修改组名称

示例:将group1的名字修改为group2

[root@192 /]# groupmod -n group2 group1


3.3删除组

命令格式:groupdel 组名

示例:删除group2

[root@192 /]# groupdel group2

3.4为组添加用户

-a 把用户添加到组中

[root@192 /]# gpasswd -a user1 group1

3.5 从组中删除用户

-d 把用户从组中删除

[root@192 /]# gpasswd -d user1 group1

说明:usermod与gpasswd都可以实现将用户添加到组中,usermod是操作用户的,像是把用户推到组中去,gpasswd是操作组,像是把用户拉到组中来。

4.用户管理

4.1 新建用户useradd

命令格式:useradd [选项] 用户名

新建一个用户时。如果不指定所属用户组或者家目录,将自动建立一个同名的基本组,并在/home下自动建立一个同名的家目录

一个用户必须有一个基本组,附加组可有可无,也可以有多个。

基本组:一定要有,有且只有一个。

附加组:可有可无,也可以有多个,多个附加组之间用逗号","隔开

示例:新增一个user1用户,并指定用户组group1,家目录/home/user2

[root@192 home]# useradd user1 -g group1 -d /home/user2


 

4.2 设置用户账户口令

(1)新增账号同时设置口令

useradd -p password user1 

(2)单独passwd命令

passwd user1 

4.3 修改用户账户

基本格式:usermod [选项] 用户名

4.3.1 -g 变更所属用户组(基本组)

例如:变更用户user1由group1到group2用户组

[root@192 home]# id user1
用户id=54322(user1) 组id=54331(group1) 组=54331(group1)
[root@192 home]# groupadd group2
[root@192 home]# usermod -g group2 user1 -d /home/user2   # 变更用户所在组
[root@192 home]# id user1
用户id=54322(user1) 组id=54332(group2) 组=54332(group2)


4.3.2 -G 变更附加组

例如:变更group2组下用户user1,增加附加组group1

[root@192 home]# id user1
用户id=54322(user1) 组id=54332(group2) 组=54332(group2)
[root@192 home]# usermod -G group1 user1
[root@192 home]# id user1
用户id=54322(user1) 组id=54332(group2) 组=54332(group2),54331(group1)

4.3.3-u 指定UID

例如:将user1的用户id由54322指定为54323

[root@192 home]# id user1
用户id=54322(user1) 组id=54332(group2) 组=54332(group2),54331(group1)
[root@192 home]# usermod -u 54323 user1
[root@192 home]# id user1
用户id=54323(user1) 组id=54332(group2) 组=54332(group2),54331(group1)
[root@192 home]# 

4.3.4 -L锁定用户,-U解锁用户(用户要有密码)

可先通过usermod -p 12345678 user1设置密码

[root@192 home]# usermod -L user1    #锁定用户

[root@192 home]# passwd -S user1     #查看用户状态  
user1 LK 2024-11-09 0 99999 7 -1 (密码已被锁定。)

[root@192 home]# usermod -U user1    #解锁用户

[root@192 home]# passwd -S user1     #查看用户状态
user1 PS 2024-11-09 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

4.4 删除用户userdel

命令格式:userdel [选项] 用户名 

-r 连家目录一起删除

[root@192 home]# userdel -r user1    #删除用户

[root@192 home]# id user1            #查询用户
id: “user1”:无此用户

4.5 切换用户组(newgrp)

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户
示例:
newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或
加组

5.权限

5.1 查看Linux文件的权限管控信息

(1)通过ls -lh 可以以列表形式查看内容,并显示权限细节

[root@192 /]# ls -lh
总用量 32K
dr-xr-xr-x.   2 root root    6  1月 10  2022 afs
lrwxrwxrwx.   1 root root    7  1月 10  2022 bin -> usr/bin
dr-xr-xr-x.   5 root root 4.0K 10月 19 10:37 boot
drwxr-xr-x.  19 root root 3.4K 11月  9 09:50 dev
drwxr-xr-x. 137 root root 8.0K 11月  9 11:01 etc
drwxr-xr-x.   4 root root   31 11月  9 11:01 home
lrwxrwxrwx.   1 root root    7  1月 10  2022 lib -> usr/lib
lrwxrwxrwx.   1 root root    9  1月 10  2022 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6  1月 10  2022 media
drwxr-xr-x.   3 root root   18 10月 19 10:27 mnt
drwxr-xr-x.   4 root root 4.0K 10月 19 15:08 opt
dr-xr-xr-x. 366 root root    0 11月  9 09:50 proc
dr-xr-x---.  14 root root 4.0K 11月  9 09:55 root
drwxr-xr-x.  45 root root 1.3K 11月  9 09:58 run
lrwxrwxrwx.   1 root root    8  1月 10  2022 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6  1月 10  2022 srv
dr-xr-xr-x.  13 root root    0 11月  9 09:50 sys
drwxrwxrwt.  22 root root 4.0K 11月  9 10:39 tmp
drwxr-xr-x.  12 root root  144 10月 19 10:17 usr
drwxr-xr-x.  20 root root 4.0K 10月 19 10:36 var

(2)权限细节总共分为10个槽位,如下图所示

(3)rwx释义

r表示读权限,

 针对文件可以查看文件内容 针对文件夹,可以查看文件夹内容,如ls命令

w表示写权限针,

对文件表示可以修改此文件 针对文件夹,可以在文件夹内:创建、删除、改名等操作

x表示执行权限

针对文件表示可以将文件作为程序执行 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

5.2 修改文件和文件夹权限信息 (通过chmod命令)

        我们可以使用chmod命令,修改文件、文件夹的权限信息。 注意,只有文件、文件夹的所属用户或root用户可以修改。

语法: chmod  [-R]  权限 文件或文件夹

选项:-R,对文件夹内的全部内容应用同样的操作

示例: test.txt文件权限修改为:rwxr-x--x

chmod u=rwx,g=rx,o=x test.txt

其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限 chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x 除此之外,还有快捷写法:chmod 751 test.txt

将test.txt的权限修改为751 那么问题来了,751表示什么意思呢?

以下是权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。

数字的细节如下:r记为4,w记为2,x记为1,可以有: 0:无任何权限,    即 

1:仅有x权限,    即 --x

2:仅有w权限    即 -w-

3:有w和x权限    即 -wx

4:仅有r权限    即 r--

5:有r和x权限    即 r-x

6:有r和w权限    即 rw-

7:有全部权限    即 rwx

所以751表示: rwx(7) r-x(5) --x(1)

5.3修改所属用户、用户组(通过chown命令)

使用chown命令,可以修改文件、文件夹的所属用户和用户组 普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:

chown [-R] [用户] [:] [用户组] 文件或文件夹

选项:

-R,同chmod,对文件夹内全部内容应用相同规则 选项,

用户,修改所属用户 选项,

用户组,修改所属用户组 :用于分隔用户和用户组

示例:

chown root hello.txt,将hello.txt所属用户修改为root

chown :root hello.txt,将hello.txt所属用户组修改为root

chown root:root1 hello.txt,将hello.txt所属用户修改为root,用户组修改为root1

chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值