对liunx系统中用户和权限管理一点小心得

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对liunx系统中用户和权限管理一点小心得相关的知识,希望对你有一定的参考价值。

近期才接触Liunx,给我的感觉,并不是很难,但是知识点很多,命令杂,并且附带了茫茫多的选项。接下来我就拿用户和权限管理来举个例子。

一丶用户&组的创建,管理。

用户,顾名思义,就是在系统上的接口进行操作的人。

用户分为:1.管理员(root)2.普通用户(user):系统用户和登录用户

管理员比较好理解,好比说一个国家的国王,拥有对国家最高的指挥权。root在linux系统中就扮演了国王的角色,任何的权限对它来说都形同虚设。

而普通用户,相当于这个国家的公民,必须遵循国家规定的法律。

普通用户分为

    1:系统用户:仅用于运行服务程序

    2:登录用户:系统资源的正常使用者

而组,就像现在生活中的圈子,但是系统组的圈子要比普通用户组的圈子高达上一些

为了分清用户,管理员和一些组的级别,Linux中就出现了用户,组的标识信息


1丶用户&组的标识

用户的标识(userid,uid)表明了该用户是root,还是user。组的标识(groupid,gid)和用户的标识是很相似的。

uid,gid的取值范围:0-65535

    管理员,组:0

    普通用户,组:

        系统用户,组:

            CentOS5,6:1-499

            CentOS7:1-999

        普通用户,组:

            CentOS5,6:500+

            CentOS7:1000+

系统不懂我们的口中的username,所以它需要一个能解析username的库。

解析库:username <-->uid

            groupname<-->gid

/etc/passwd:用户名,uid及其他属性信息解析库

/etc/group:组,gid及其他属性信息库


组类别:以用户为核心

    用户的主组:基本组;

    用户的附加组:额外组;

组类别:根据组内容纳的用户来划分

    私有组:与用户名相同,且只有一个此用户;

    公共组:组内包含了多个用户;

    认证机制:验正用户的确是他所声称的人;

    通过对比事先存储的,与登录时所提供的信息是否一致;

用户的认证信息库:/etc/shadow

组的认证信息库:/etc/gshadow

密码:加密存放,使用单向加密机制;

单向加密:仅能加密,不能解密;提取数据特征码


2丶用户和组的管理

对用户:useradd,usermod,userdel

对组:groupadd,groupmod,groupdel

认证:passwd


用户解析库:/etc/passwd 

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


技术分享

组解析库文件:/etc/group

GRPNAME:x:GID:user1, user2, ...

组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔技术分享


useradd命令:添加用户

useradd  [选项]  登录名

-c, --comment COMMENT:注释信息,一般为Full Name;

-d, --home  /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会将skel相关的文件给用户;

-g, --gid GROUP:用户的基本组组名或GID;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;

-m, --create-home:强制创建家目录;

-M:不创建用户主目录,即系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;

-r, --system:创建一个系统账户

-s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell;

-u, --uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。

注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中;

useradd -D:显示创建用户时的默认设置;

useradd -D  选项:设置某默认选项;

-e, --expiredate  EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定

-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。

为用户提供默认配置的配置文件:

/etc/login.defs, /etc/default/useradd

影子口令文件:/etc/shadow

登录名:密码:最近一次的修改时间:密码的最短使用期限:密码最长使用期限:提前警告的天数:非活动期限:账号的禁用日期:保留字段

密码:$加密算法$salt$加密的密码字符串

usermod命令:修改账号信息

-c, --comment  COMMENT

-d, --home  HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;

# usermod -d /tmp/lalala zz


-g, --gid GROUP

# usermod -g timor zz

指定基本组

-G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;

# usermod -G zhou zz

-l, --login  NEW_LOGIN:修改当前用户的用户名;

-s, --shell  SHELL

-u, --uid  UID

-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”

-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”



userdel命令:删除用户账号

userdel [选项]  登录名

-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除

passwd命令:密码管理命令

passwd   [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]

1. passwd:修改自己的密码;

2. passwd  username:修改其它用户的密码,仅root有此权限;

密码复杂度:

(1) 不能少于8个字符;

(2) 不能使用与过去的密码太相似的密码;

(3) 应该使用四类字符中的至少三类;

选项:

-l:锁定密码

-u:解锁解密

-d:清除密码

--stdin:从标准输入接收密码;

echo "PASSWORD" | passwd  --stdin  USERNAME

id命令:查看用户相关的id信息;

id  [OPTION]...  [USER]

-u:仅查看uid

-g:仅查看gid

-G:查看所属的所有组的ID;

-n:显示名称,而非ID;

su命令:switch user

切换用户时:

(1) 不读取目标用户的配置文件(非登录式切换,半切换);

su  USERNAME

(2) 读取目标用户的配置文件(登录式切换,完全切换);

su  -l  USERNAME

su  -  USERNAME

-c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作;

注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;



groupadd命令:添加组

groupadd  [选项]  group

-g  GID:指明GID;

-r, --system:系统组;

groupmod命令:修改组信息

groupmod [选项] GROUP

-g  GID 

-n NEW_NAME:修改组名;

groupdel命令:删除组

groupdel [选项] GROUP

gpasswd命令:为组添加密码

组密码文件:/etc/gshadow

gpasswd [选项] group

-a USERNAME:把用户添加至组中;

-d USERNAME:从此组中移除此用户;

newgrp命令:登录到一个新组

chage命令:修改用户账号的各种期限

丶权限管理

进程安全上下文:

进程:运行一个程序文件而产生,通常由一个用户发起;进程则以发起者的身份运行;

判断进程的发起者是否与文件属主相同,如果是,则以属主的身份来访问,从而应用属主权限;否则

判断进程的发起者是否属于文件的属组,如果是,则应用属组权限;否则应用“其它”权限

文件系统文件权限:

属主:owner, u

属组:group, g

其它:other, o

权限:

r: readable,可读

w: writable, 可写

x:excutable, 可执行 

权限管理:

文件:

r:可获取文件的数据;

w:可修改文件的数据;

x:可将此文件运行为进程;

目录:

r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;

w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;

x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

rwxrwxrwx:

owner: rwx 

group: rwx 

other: rwx 

权限组合机制:

以owner为例:

                       --- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

权限管理:

ownership: 仅管理员有权限 

改属主:chown

改属组:chgrp

mode(permission):仅属主


chmod

chmod命令:

作用:修改文件的权限

用户的标识符:u,g,o,a

MODE:

赋权表示法:直接操作一类用户的所有权限位rwx;

u= g= o= a=

两类用户权限相同:ug=, go=

不同类的用户权限不同:u=,g=,o=

           授权表示法:操作一类用户一位或多位权限;

u+, u-

g+, g-

o+, o-

a+, a-

两类用户权限收授机制相同:ug+, ug-, ...

不同类的用户权限不同:u+,g+,o+

常用选项:

-R, --recursive:递归修改;

chown命令:

常用选项:

-R, --recursive:递归修改;

chgrp命令:

umask:显示或设定文件模式掩码

文件:

666-umask

目录:

777-umask

注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要加1;

注意:此设定仅对当前shell进程有效;


本文出自 “11284919” 博客,请务必保留此出处http://11294919.blog.51cto.com/11284919/1748714

以上是关于对liunx系统中用户和权限管理一点小心得的主要内容,如果未能解决你的问题,请参考以下文章

[Linux] liunx文件系统下的权限管理

Liunx中的账号与文件/目录权限管理——理论篇

近日使用Taro框架的一点小心得

python+tesseract验证码识别的一点小心得

卷积学习的一点小心得

liunx-系统配置及服务管理 用户的权限-基本权限UGO