当前位置: 首页 > Linux

Linux用户和权限管理

时间:2023-04-06 05:58:46 Linux

1、用户和组在Linux中,用户是用来实现多任务操作的。不同用户可以同时使用系统,同时操作系统;Linux是一个严格的等级系统。系统对文件操作的权限不同。为了方便管理,对用户进行了分组,属于不同组的用户对文件的操作权限不同。Linux系统使用不同的ID来标识唯一的用户,也使用不同的ID来标识不同的组。用户类别及用户IDUID管理员:0普通用户系统用户:为了让后台进程或服务类进程以非管理员身份运行,通常需要为此创建多个普通用户,此类用户从不需要登录系统。1-499(CentOS6),1-999(CentOS7)登录用户:500-60000(CentOS6),1000-60000(CentOS7)组类别和组IDGID管理员组:0普通用户组系统组:1-499(CentOS6),1-999(CentOS7)登录组:500-60000(CentOS6),1000-60000(CentOS7)组类别2用户基本组用户附加组组类别3私有组:组名与用户名相同,andonlyIncludeauserpublicgroup:该组包含多个用户。Linux系统通过名称解析将用户名和组名解析成对应的唯一标识,从而验证用户的身份和用户属于哪个组。与用户相关的文件:1./etc/passwd:用户信息库name:passwd:UID:GID:GESOS:directory:shellname:用户名passwd:可以是加密密码或占位符xUID:GID:ID号用户所属的主组GESOS:注意信息目录:用户家目录shell:用户默认的shell,登录时默认的shell程序2、/etc/passwd:用户密码用户名:加密后的密码:RecentTimeto修改一次密码:最短使用期限:最长使用期限:警告期限:失效期限:保留字段3、/etc/group:组信息库group_name:password:GID:user_listuser_list:该组的用户成员,带这个的用户列表组作为附加组4./etc/gpasswd:组密码组密码的作用:当用户切换其基本组时,如果该组不属于该用户的附加组,此时,如果该组设置如果设置了群组密码,用户在知道群组密码后可以临时切换到基本群组;如果群组没有设置群组密码,则用户无法切换到该群组。2.权限前面说过Linux是一个严格的等级制度。一个文件或目录对不同的用户有不同的权限。该权限主要包括r、w、x(可读、可写、可执行)。对于文件和目录这三个权限的作用是不同的:file:r:可以获取文件的数据;w:可以修改文件的数据;x:可以将文件作为进程运行;目录:r:可以使用ls命令获取其下的文件所有文件列表(不包括详细信息)w:可以修改该目录下的文件列表;即创建或删除文件;x:可以cd进入该目录,可以使用ls-l获取所有文件的详细属性信息;文件或目录的权限主要针对文件或目录的属主、所属组和其他用户。使用ls-l查看所有者、组和其他用户的文件权限。那么Liunx系统如何允许一个文件权限呢?以用户身份操作一个文件,必须由用户发起一个进程,进程以用户身份运行,所以系统会检查进程的所有者(发起进程的用户)是否与进程的所有者相同文件,如果相同,则申请所有者的许可;否则,检查进程的所有者是否属于该文件的组,如果是,则申请该组的权限;否则,只能应用其他用户的权限。此过程应用进程到文件访问权限的模型。三、用户和组管理相关命令1、用户管理命令useradd、userdel、usermod、passwd(1)useradd命令:createuseruseradd[option]loginname-uUID:指定UID;-gGROUP:指定基本组ID,这个组必须事先存在;-GGROUP1[,GROUP2…]:表示用户所属的附加组,多个组之间用逗号分隔;-cCOMMENT:指定用户的评论信息;-dHOME_DIR:使用指定路径是用户的主目录;通过复制/etc/skel目录并重命名它;如果指定的主目录路径存在,则不会为用户复制环境配置文件;-sSHELL:指定用户的shell,所有可用的shell存放在/etc/shells文件中;-r:创建系统用户;注意:很多创建用户时默认选项设置的配置文件是/etc/login.defs(2)usermod命令:修改用户属性usermod[option]username-uUIG:修改用户的UID;-gGROUP:修改用户所属的基本组;-GGROUP1[,GROUP2…]:修改用户所属的附加组;原来的附加组将被覆盖;-a:和-g一起使用,为用户增加一个新的附加组;-cCOMMENT:修改评论信息;-dHOME_DIR:修改用户的主目录;用户的原始文件不会转移到新位置;-m:和-d一起使用,将原来的主目录移动到新的主目录;-lNEW_LOGIN:修改用户名;-sSHELL:修改用户的默认shell;-L:锁定指定用户密码;添加一个“!”在密码字符串之前;-U:解锁指定用户密码;(3)userdel命令:删除指定用户userdel[option]username-r:删除用户时删除用户的主目录;默认不删除用户的主目录;(4)passwd命令:用户密码管理命令passwd:修改用户自己的密码passwdUSERNAME:修改指定用户的密码,但只有root有此权限;-l,-u:锁定和解锁用户;-d:清除指定用户的密码;-eDATE:有效期,日期;-iDAYS:不活动时间;天数-nDAYS:最短密码使用期限;-xDAYS:密码最长使用期限;-wDAYS:密码警告期限;--stdin:echo“密码”|passwd–stdinUSERNAME2,组管理命令groupadd,groupdel,groupmod,gpasswd(1)groupadd命令:添加组groupadd[option]group_name-gGID:指定GID;默认为上一个组的GID+1-r:创建系统组(2)groupmod命令:修改组的属性groupmod[option]GROUP-gGID:修改GID-nnew_groupname:修改组名(3)groupdel命令:删除组groupdel[option]GROUP(4)gpasswd命令gpasswd[option]group不加选项给组添加密码-uUSERNAME:给组添加用户;-dUSERNAME:从组中删除用户;3.其他命令newgrp,chage,chsh,id,su,finger,chfn,pwck,grpck(1)newgrpGROUP:暂时将GROUP切换为用户的基本组newgrp[-][group]-:会模拟用户重新登录重新初始化自己的工作环境(2)chage命令:修改用户密码过期信息chage[option]username(3)chsh命令:修改指定用户的默认shell;(4)id命令:显示用户的有效ID信息id[option]...[username]-u:只显示有效的UID;-g:只显示用户所属的基本组ID;-G:显示用户所属的所有组ID;-n:显示名称而不是ID;(5)su命令:切换用户登录开关:会通过读取用户的配置文件重新初始化su–USERNAMEsu-lUSERNAME非登录开关:不会读取目标用户的配置文件初始化suUSERNAME注:管理员可以任意切换没有密码的其他用户;su-c'COMMAND':以指定用户身份只运行这里指定的命令;su–dabric-c'whoami'(6)finger命令:显示指定用户的信息;(7)chfn命令:修改用户信息;(8)pwck命令:检查指定用户的密码文件是否异常;(9)grpck命令:检查指定用户组的密码文件是否异常;四、权限管理相关命令1、文件权限管理命令chmodchmod命令(用户只能修改属主为自己的文件)chmod[OPTION]…MODE[,MODE]…FILE…chmod[OPTION]…OCTAL-MODEFILE…chmod[OPTION]…--reference=RFILEFILE…(1)chmod[OPTION]…MODE[,MODE]…FILE…MODE表示法:赋权表示法:直接操作某类用户的所有权限位u=g=o=a=授权表示法:直接操作某类用户的一个权限位r,w,xu+,u-g+,g-o+,o-a+,a-(2)chmod[OPTION]...OCTAL-MODEFILE...八进制表示法:(3)chmod[OPTION]...--reference=RFILEFILE...参考参考文件的权限修改当前文件的权限Options:-R,--recursive:递归修改(常用于授权表示法)2.文件隶属关系管理命令chown,chgrp(仅限管理员使用)可以修改文件所有者和组)(1)chown命令:chown[OPTION]…[OWNER][:[.][GROUP]]FILE…chown[OPTION]…--reference=RFILEFILE…选项:-R,--recursive:递归修改(2)chgrp命令:chgrp[OPTION]…GROUPFILE…chgrp[OPTION]…--reference=RFILEFILE…3、umask:文件权限的反掩码,掩码代码文件:666-umask目录:777-umask注意:文件之所以被减去666,是因为该文件默认不能有执行权限。如果减法的结果有执行权限,则需要加1;umask命令:umask:查看当前的umaskumaskMASK:设置umask注意:该命令的设置只对当前shell进程有效;五、扩展命令1、使用install命令:install-copyfilesandsetattributes单源复制:install[OPTION]…[-T]SOURCEDEST多源复制:install[OPTION]…SOURCE…DIRECTORYinstall[OPTION]…-tDIRECTORYSOURCE…创建目录:install[OPTION]…-dDIRECTORY…常用选项:-m,--mode=MODE:设置目标文件权限,默认为755-o,--owner=OWNER:设置ownerofthetargetfile-g,--group=GROUP:设置目标文件的group2.mktemp使用mktemp命令:创建临时文件或临时目录mktemp[OPTION]...[TEMPLATE]-d:创建临时目录mktemp/tmp/mytmp.XXXX引用文件名并将执行结果保存在变量中使用注意:mktemp将create所创建的临时文件名直接返回,所以可以直接通过命令引用保存到一个变量中;练习完成以下任务创建一个新的系统组mariadb,创建一个新的系统用户mariadb,要求其没有home目录,shell为/sbin/nologin:尝试root切换到User,查看其命令提示符;创建一个GID为5000的组dabric,新建一个用户gentoo,要求其主目录为/users/gentoo,密码与用户名相同;新建一个用户fedora,主目录为/users/fedora,密码为同一个用户名;新建用户www,主目录为/users/www;删除www用户,但保留其主目录;为用户gentoo和fedora添加一个额外的组dabric;将目录/var/log复制到/tmp/目录下,修改/tmp/log及其里面的所有文件