Linux系统下用户以及权限管理

Linux系统下用户以及权限管理,第1张

一、 *** 作系统中的用户管理 相关配置文件解读

Linux用户在 *** 作系统可以进行日常管理和维护,涉及到的相关配置文件如下:

/etc/passwd 保存 *** 作系统中的所有用户信息

root : x : 0 : 0 : root : /root : /bin/bash

name:password:UID:GID:GECOS:directory:shell

用户名 :密码占位符 :uid :基本组的gid :用户信息记录字段:用户的家目录:用户登录系统后使用的命令解析器

————————————————

字段1:用户名

字段2:密码占位符

字段3:用户的UID 0 表示超级用户 , 500-60000 普通用户 , 1-499 程序用户

字段4:基本组的GID 先有组才有用户

字段5:用户信息记录字段

字段6:用户的家目录

字段7:用户登录系统后使用的命令解释器

————————————————

UID:0表示超级用户, 程序用户 (1-499),普通用户 (500以上60000以下),根据uid将用户分为以上三类用户。

/etc/shdaow 保存用户密码(以加密形式保存)

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

root : $Jw5XsDvvNBH5Xoq. : 19180 : 0 : 99999 : 7 : : :

用户名:密码(加密后的字符串):最近一次的修改时间【距离1970年1月1日的距离】:密码的最短有效期:密码的最长有效期:密码过期前7天警告:密码的不活跃期:用户的失效时间: 保留字段

————————————————

字段1:用户名

*字段2:用户的密码加密后的字符串(sha)

字段3:距离1970/1/1密码最近一次修改的时间

字段4:密码的最短有效期

*字段5:密码的最长有效期(建议时间 90)

字段6:密码过期前7天警告

字段7:密码的不活跃期

字段8:用户的失效时间

字段9:保留字段

这个字段目前没有使用,等待新功能的加入。

————————————————

/etc/group 保存组信息

————————————————

root:x:0:

bin:x:1:bin,daemon

组名:组的密码占位符:gid:附加组成员

————————————————

/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制

/etc/default/useradd 显示或更改默认的useradd配置文件

二、文件及目录权限

文件与权限: 即文件或者目录属于哪个用户,属于哪个组,不同的用户能对该文件进行何种 *** 作。

————————————————

注:

查看文件权限: ls -l 文件

查看目录权限 : ls -ld 目录

————————————————

[root@xing Desktop]# ls -l /root/Desktop/

total 70584

lrwxrwxrwx. 1 root root 18 Jul 14 14:32 123.txt ->/root/Desktop/ming

-rw-r--r--. (文件属性) 1 (链接个数: 表示指向它的链接文件的个数 root (所属者) root (所属组) 0(文件大小:单位byte) Jul 14 14:14(最后一次修改时间) 2.txt(文件名)

drwx------.(文件属性) 7 (目录中的子目录数: 此处看到的值要减2才等于该目录下的子目录的实际个数。 root (所属者) root (所属组) 4096 (文件大小:单位byte)Jul 13 16:56(最后一次修改时间) vmware-tools-distrib(目录名)

[root@xing Desktop]# ls -ld /root/Desktop/

drwxr-xr-x. 3 root root 4096 Jul 14 14:44 /root/Desktop/

————————————————

文件属性解释:

- rw- r-- r-- .

d rwx r-x r-x .

字段1:文件类型 【- 普通文件 d目录 l符号链接 b块设备】

字段2:文件所有者对该文件的权限

字段3:文件所属组的权限

字段4:其他用户的权限(既不是文件所有者也不是文件所属组的用户)

字段5:表示文件受 selinux 的程序管理

8进制赋权法: r 【100】4; w【010】2; x【001】1

————————————————

三、用户以及权限管理命令汇总:

————————————————

用户增删改命令

useradd

userdel

usermod

————————————————

用户组增删改命令

groupadd

groupdel

groupmod

————————————————

passwd

change

————————————————

文件权限修改: chmod命令

chmod 对象 算数运算符 权限 文件

[root@xing tmp]# ls -ld ming

drwxr-xr-x. 2 root root 4096 Jul 16 10:27 ming

[root@xing tmp]# chmod o-x ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 root root 4096 Jul 16 10:27 ming

————————————————

文件所属者修改:

chown 用户 文件

[root@xing tmp]# chown ming ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 ming root 4096 Jul 16 10:27 ming

————————————————

文件所属组修改:

chgrp 组 文件

[root@xing tmp]# chgrp ming ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 ming ming 4096 Jul 16 10:27 ming

————————————————

8进制赋权法

[root@xing ~]# chmod 644 /tmp/ming

[root@xing ~]# ls -ld /tmp/ming

drw-r--r--. 2 ming ming 4096 Jul 16 10:27 /tmp/ming

————————————————

linux下命令“ll”是“ls -l"的别名。

————————————————

粘滞位:赋权后的文件 只有建立者可以删除

chmod o+t 文件

[root@xing ~]# chmod o+t /tmp/ming

[root@xing ~]# ll -d /tmp/ming

drw-r--r-T . 2 ming ming 4096 Jul 16 10:27 /tmp/ming

————————————————

sgid : 赋权后的目录,新建立的文件或者子目录的所属组继承父目录的所属组

chmod g+s 目录

[root@xing ming]# chmod g+s /tmp/ming

[root@xing tmp]# ll

drw-r-Sr-T. 2 ming ming 4096 Jul 16 11:29 ming

[root@xing ming]# touch 20.txt

[root@xing ming]# ll

-rw-r--r--. 1 root ming 0 Jul 16 11:33 20.txt

[root@xing ming]# mkdir 60

[root@xing ming]# ll

drwxr-sr-x. 2 root ming 4096 Jul 16 11:34 60

————————————————

suid :允许谁运行该文件具有该文件所属者的权限

chmod u+s 文件

[root@xing Desktop]# ll /usr/bin/vim

-rwxr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim

[root@xing Desktop]# chmod u+s /usr/bin/vim

[root@xing Desktop]# ll /usr/bin/vim

-rwsr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim

备注:linux 红底白字代表警告!

————————————————

[root@xing Desktop]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

suid:4 sgid:2 粘滞位:1

[root@xing Desktop]# find /usr/bin -perm 4 755

/usr/bin/at

/usr/bin/chage

/usr/bin/pkexec

/usr/bin/Xorg

/usr/bin/crontab

/usr/bin/newgrp

/usr/bin/vim

/usr/bin/gpasswd

/usr/bin/passwd

/usr/bin/ksu

————————————————

1、不再允许添加新用户的请求

chattr命令 :用于改变文件属性

chattr +i 文件

lsttr命令 :查看文件属性

lsattr 文件

[root@xing Desktop]# lsattr /etc/passwd /etc/shadow

-------------e- /etc/passwd

-------------e- /etc/shadow

[root@xing Desktop]# chattr +i /etc/passwd /etc/shadow

[root@xing Desktop]# lsattr /etc/passwd /etc/shadow

----i--------e- /etc/passwd

----i--------e- /etc/shadow

[root@xing Desktop]# useradd kk

useradd: cannot open /etc/passwd

2、umask

root用户的umask默认值是0022,一般用户默认是0002

目录的最高权限 0777-0022=0755

文件的最高权限 0666-0022=644

一般服务器配置umask的值配置为027最好;需要去修改两处文件中的umask值。

/etc/profile

/etc/bashrc

3、修改默认的密码最长有效期:修改以下配置文件

/etc/login.defs

Linux系统中的用户是分角色的,用户的角色是由UID和GID来识别的(也就是说系统是识别的是用户的UID、GID,而非用户用户名),一个UID是唯一(系统中唯一如同身份z一样)用来标识系统的用户账号(用户名)。

文件的用户与用户组分为超级管理员,普通用户和系统用户。

1)超级管理员的UID=0,GID=0,也可以这么说系统只要是识别出某个用户的UID\GID都为0时,那么这个用户系统就认为是超级管理员。

2)普通用户(管理员添加的),默认它的UID\GID是从500-65535,权限很小,只能 *** 作自己的家目录中文件及子目录(注:nobody它的UID\GID是65534)。

3)系统用户,也称虚拟用户,也就是安装系统时就默认存在的且不可登陆系统,它们的UID\GID是1-499。

我们可以通过cat /etc/passwd命令来查看所有的用户信息,例如下图,第三列是UID,第四列是GID:

创建用户

useradd user1创建用户user1

useradd -e 12/30/2021 user2 创建用户user2,有效期到2021-12-30

设置用户密码

passwd user1设置密码,有设置密码的用户不能用

这里设置密码时可能会碰到密码保护机制问题,这里需要注释掉保护机制的问题

这个时候需要在编辑/etc/pam.d/system-auth文件,将其中的passwordrequisite

和passwordsufficient两行注释掉,如下图:

创建用户组

groupadd –g 888 users 创建一个组users,其GID为888

groupadd users 不用g参数,使用默认的组ID

命令 gpasswd为组添加用户

只有root和组管理员能够改变组的成员:

gpasswd –a user1 users 把 user1加入users组

gpasswd –d user1 users 把 user1退出users组

命令groupmod修改组

groupmod –n user2 user1 修改组名user1为user2

groupdel删除组

groupdel users 删除组users

真正从安全性角度上来考虑的话,是要控制用户一定执行命令的权限,也就是哪些用户可以执行哪些命令,不可以执行哪些命令,因此也就有了sudo这个应用,对于sudo提权,也就是修改/etc/sudoers的配置文件。

使用这个用户登录linux系统后的一般 *** 作(除sudo/su等 *** 作外)都是这个用户权限的 *** 作,包括 启动应用后,该应用具有的权限,也是和这个用户一致的 。Linux每个进程都是以某个用户身份运行, 进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权限就越大 。用户本身对系统的权限在创建用户时设置,也可后续更改(如不能登录等等)。

查看所有用户信息。

Linux权限授权,默认是授权给三种角色,分别是user、group、other。三种角色对目录的权限:chmod 设置数字权限4,2,1,分别对应的是r,w,x,即可读,可写,可执行。 对目录设置权限时,可以加-R递归参数。可以对文件的这三个角色进行目录读写可执行授权, 如图 。

以上图所示,第一组为文件所有者的权限,第二组为文件所属组的权限,第三组为其他人的权限。其表示的具体含义为:文件所有者具有对文件的读写权限,文件所属组的用户具有对文件读写的权限,而其他人只有读取文件的权限。

文件的所有者

文件的所有者一般是创建该文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的 Linux 主机上,可以通过文件的所有者来区分一个文件属于某个用户。当然,一个用户也无权查看或更改其它用户的文件。

文件所属的组

假如有几个用户合作开发同一个项目,如果每个用户只能查看和修改自己创建的文件就太不方便了,也就谈不上什么合作了。所以需要一个机制允许一个用户查看和修改其它用户的文件,此时就用到组的概念的。我们可以创建一个组,然后把需要合作的用户都添加都这个组中。在设置文件的访问权限时,允许这个组中的用户对该文件进行读取和修改。

其他人

如果我想把一个文件共享给系统中的所有用户该怎么办?通过组的方式显然是不合适的,因为需要把系统中的所有用户都添加到一个组中。并且系统中添加了新用户该怎么办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和修改。

授权完各个角色的权限,那么怎么更改文件所属的角色。如下:

更改文件拥有者: chown 账号名称 文件或目录

更改文件所属用户组:chgrp 组 目录或文件名

web目录权限设置参考 。 注意Web服务器各自的运行用户如果要对web目录进行 *** 作,也必须得到web目录的rwx授权才可以。

linux里面如何让某个程序以某个用户来运行?比如让mysql程序用mysql用户去运行。让httpd用httpd用户去运行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8987770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存