《账户管理和权限管》由会员分享,可在线阅读,更多相关《账户管理和权限管(45页珍藏版)》请在金锄头文库上搜索。
1、账户管理和权限管理账户实质账户实质账户文件账户文件账户设置账户设置权限表示权限表示权限设置权限设置5.1账户概述账户实质上就是一个用户在系统上的标识,系统依据账户来区分每个用户的文件、 进程、任务,给每个用户提供特定的工作环境(如用户的工作目录、shell版本、 以及X-Windows环境的配置等),使每个用户的工作都能独立不受干扰地进行。Linux中的账户包括用户账户超级用户:UID=0,GID=0普通用户:UID=500伪用户:0UID500组账户标准组:标准组可以容纳多个用户,若使用标准组, 在创建一个新的用户时就应该指定他所属于的组。私有组:私有组中只有用户自己。当在创建一个新用户us
2、er时, 若没有指定他所属于的组,Red Hat 就建立一个和该用户同名的私有组。用户和组的关系为方便用户管理和用户间的交流,设立了组。每个用户都属于某个或某些组,每个组包含若干用户。组是用户的集合。一个标准组可以容纳多个用户。同一个用户可以同属于多个组,这些组可以是私有组,也可以是标准组。当一个用户同属于多个组时,将这些组分为:主组:用户登录系统时的组。附加组:可切换的其他组。 有关用户和组的信息存放在: /etc/passwd /etc/group文件中。用户的口令信息存放在 /etc/shadow文件中。用户帐号文件用户帐号文件/etc/passwdroot:x:0:0:root:/ro
3、ot:/bin/bashmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashfmh:x:500:500:fmh:/home/fmh:/bin/bashuser:x:501:501:user:/home/user:/bin/bashpasswd文件中所有条目都有如下形式用户名:密码:UID:GID:用户信息:根目录:用户登录shellUID是分配给用户的唯一编号,编号范围从032767,100以下的编号用于特殊的系统账号,如uucp,news,mail等,root的UID为0。如果希望暂时禁止用户登录,可以将shell字段改为/bin/false
4、,或者在 停用账户前加上#,或锁定账户即可。/etc/group root:x:0:root adm:x:4:root,adm,daemon fmh:x:500: users:x:501:/etc/group文件具有以下形式:组名:密码:GID:该组中的用户默认情况下,新增的用户都属于自身的私有组/etc/shadowroot:$1$ldijdka93dkj:11749:0:99999:7:fmh:$1$djd29jd;jkjk:11752:0:99999:7:/etc/shadow条目具有以下格式:用户名:加密后的密码:密码最后一次被修改的日期(从1970年1月1日到该天的天数):从上一次修
5、改密码到下一次允许修改要经历的天数:经过多少天用户必须重新设置密码的天数:密码到期前提醒用户修改密码的天数:密码到期后经过多少天将账户关闭的天数:账号到期日:保留5.2 使用命令管理用户 使用命令管理用户的操作,主要是创建用户,修改用户,删除用户等操作。是深受广的程序员喜欢的一种操作方式。 1创建用户账户命令创建用户账户命令useradd2修改用户账户属性命令修改用户账户属性命令usermod3删除用户账户命令删除用户账户命令userdel4维护用户口令的命令维护用户口令的命令passwd5设置密码期限的命令设置密码期限的命令chage用户管理命令vuseradd option 用户名常用选项
6、:-c comment 指定用户的资料 -d dir 设置用户目录 -g group 设置用户的所属组 -u UID 设置用户的User id -s shell 设置用户登录的shell示例:useradd user1 useradd d /home/usertemp user2 useradd u 505 g user1 wang编辑/etc/passwd,定义用户名、UID、GID、根目录和针对该用户的shell运行mkdir为用户创建根目录将初始化文件从/etc/skel复制到用户的根目录下改变用户根目录和目录下文件的所有权 chown r wang:users /home/wang命令
7、:命令:命令:命令:passwdoptionpasswdoption用户名用户名用户名用户名 说明:输入说明:输入说明:输入说明:输入passwdpasswd命令后,系统要求用户输入原口命令后,系统要求用户输入原口命令后,系统要求用户输入原口命令后,系统要求用户输入原口令,正确后,再要求输入(两次)新口令。令,正确后,再要求输入(两次)新口令。令,正确后,再要求输入(两次)新口令。令,正确后,再要求输入(两次)新口令。口令要求至少有口令要求至少有口令要求至少有口令要求至少有6 6个字符个字符个字符个字符. .参数:参数:参数:参数:-d-d删除密码。本参数仅有系统管理者才能使用。删除密码。本参
8、数仅有系统管理者才能使用。删除密码。本参数仅有系统管理者才能使用。删除密码。本参数仅有系统管理者才能使用。 -l-l锁住密码。锁住密码。锁住密码。锁住密码。 -S-S列出密码的相关信息。本参数仅有系统管理者才列出密码的相关信息。本参数仅有系统管理者才列出密码的相关信息。本参数仅有系统管理者才列出密码的相关信息。本参数仅有系统管理者才能使用。能使用。能使用。能使用。 -u-u解开已上锁的帐号。解开已上锁的帐号。解开已上锁的帐号。解开已上锁的帐号。改变用户口令改变用户口令修改用户账号 命令命令:usermod说明:说明:usermod可用来修改用户帐号的各项设定。 常用选项: -d 修改用户登入时
9、的目录。 -g 修改用户所属的群组。 -G 修改用户所属的附加群组。 -l 修改用户帐号名称。 -L 锁定用户密码,使密码无效。 -s 修改用户登入後所使用的shell。 -u 修改用户ID。 -U 解除密码锁定。 操作举例:#usermod-luser2user1#usermod-Gsoftgroupjjh#usermod-Luser1#usermod-Uuser1删除用户账号删除用户账号命令:userdel常用选项:-r 用于删除用户的宿主目录操作举例:#userdeluser2#userdel-ruser1注意:删除账户时要一并把该账户所占资源回收。如该用户的目录,邮箱,定时运行的程序等
10、。查找并显示用户信息查找并显示用户信息finger-lmsp帐号名称帐号名称.说明:说明:finger指令会去查找,并显示指定帐号的用户相关信息,包括本地与指令会去查找,并显示指定帐号的用户相关信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。端机,闲置时间,登入时间以及地址和电话。参数:参数:-l列出该用户的帐号名
11、称,真实姓名,用户专属目录,登入所用的列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容。,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容。-m排除查找用户的真实姓名。排除查找用户的真实姓名。-s列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。间以及地址和电话。-p列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件
12、状态,但不显示该用户的计划文件和方案文,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。件内容。口令时效 强制用户在一段时间之后更改口令的机制称为口令时效。 chage命令命令格式:#chage常用选项:-m days:指定用户必须改变口令所间隔的最少天数。如果值为 0,口令就不会过期。-M days:指定口令有效的最多天数。 当该选项指定的天数加上-d 选项指定的天数小于当前的日期,用户在使用该账号前就必须改变口令。-d days:指定自从1970年1月1日起,口令被改变的天数。-I days:指定口令过期后,账号被锁前不活跃的天数。 如果值为0,账号在口令过期后就
13、不会被锁。-E date:指定账号被锁的日期,日期格式为YYYY-MM-DD。 若不用日期,也可以使用自1970年1月1日后经过的天数。-W days:指定口令过期前要警告用户的天数。-l:列出指定用户当前的口令时效信息,以确定账号何时过期。操作举例:用户user1两天内不能更改口令,并且口令最长的存活期为30天, 并在口令过期前5天通知user1。# chage -m 2 -M 30 -W 5 user1查看用户user1当前的口令时效信息。# chage -l user15.3 使用命令管理用户组 1创建用户组账户命令创建用户组账户命令groupadd2更改用户组账户属性命令更改用户组账户
14、属性命令groupmod3管理用户组中用户的命令管理用户组中用户的命令gpasswd4删除组账户的命令删除组账户的命令groupdel19创建新组 命令:groupadd -g GID -r mygroup常用选项:-r:用于创建系统组账号(GID小于500 )-g:用于指定GID操作举例:#groupaddmygroup#groupadd-rsysgroup#groupadd-g888group2修改组账号修改组账号命令:groupmod常用选项:-g:改变组账号的GID ,组账号名保持不变。-n:改变组账号名。操作举例:#groupmod-g503mygroup#groupmod-nnew
15、groupmygroup管理组用户命令:gpasswd只有root和组管理员能够改变组的成员: 操作举例:把student1加入student组gpasswd a student1 student 把student1退出student组 gpasswd d student1 student 把student的管理员指派给yz gpasswd A yz student 删除组账号删除组账号命令格式:#groupdel注意事项:被删除的组账号必须存在当有用户使用组账号作为私有组时不能删除与用户名同名的私有组账号在使用userdel命令删除用户时被同时删除操作举例:#groupdelmygroup
16、启动用户管理器启动用户管理器 该管理器是图形界面的应用程序,需要先进入图形界面,点击 “系统管理用户和组群”,或在虚拟终端窗口中输入下面的命令:system-config-users 5.4 用户管理器管理用户用户管理器管理用户用户管理器中各项含义如表所示。 项目说明用户页该页中显示所有的普通用户组账号,不显示系统用户组账号。可以在该页中选定相应的用户组,再圣其进行操作,如修改属性、删除等。组群页该页中显示所有的普通用户账号,不显示系统用户账号。可以在该页中选定相应的用户账号,再圣其进行操作,如修改属性、删除等。添加用户按钮选择该按钮添加新的用户添加组群按钮选择该按钮添加新的用户组属性按钮设置
17、选定的用户或组的属性删除按钮删除选定的用户或组5.5 操作权限概述Linux是多用户的操作系统,允许多个用户同时在系统上登录和工作。为了确保系统和用户的安全,Linux采取了很多的安全措施。通过用户的代号(UID)来确定每个用户在登录系统后都做了些什么, 也可以用来区别不同用户所建立的文件或目录。Linux文件系统安全模型是通过给系统中的文件赋予三个属性来起作用的,这三个赋予每个文件的属性称为所有者、组和访问权限。 Linux下每一个文件必须严格地属于一个用户和一个组。使用使用Linux系统资源的四类人员系统资源的四类人员在Linux中,将使用系统资源的人员分为四类:超级用户文件或目录的属主属
18、主的同组人其他人员由于超级用户具有操作Linux系统的一切权限,所以不用指定超级用户对文件和目录的访问权限。 对于其他三类用户都要指定对文件和目录的访问权限。用户只能不受限制的操作自家目录及其子目录下的所有文件。 对系统中其他目录的访问受到同组和其他人的访问限制。查看文件和目录的权限查看文件和目录的权限使用如下命令查看权限$ls-l常见的权限字符串及其含义p146B9-10字符 数值 说明 -rw- 600 只有属主才有读取和写入的权限。 -rw-r-r- 644 只有属主才有读取和写入的权限;同组人和其他 人只有读取的权限。 -rwx- 700 只有属主才有读取、写入、和执行的权限。 -rw
19、xr-xr-x 755 属主有读取、写入、和执行的权限;同组人和其 他人只有读取和执行的权限。 -rwx-x-x 711 属主有读取、写入、和执行权限;同组人和其他 人只有执行权限。-rw-rw-rw- 666 每个人都能够读取和写入文件。 -rwxrwxrwx 777 每个人都能够读取、写入、和执行。 drwx- 700 只有属主能在目录中读取、写入。 drwxr-xr-x 755 每个人都能够读取目录,但是其中的内容却只能被属主改 变。权限的文字设定法权限的文字设定法chmodugoa+-=rwxugo人员标识属主(u),同组(g),其他人(o),所有的人员(a)设定方法+ :增加权限,
20、- :删除权限= :分配权限,同时删除旧的权限权限字符r(读),w(写),x(执行),u(和属主的权限相同)g(和所属组用户的权限相同),o(和其他用户的权限相同)操作举例: 对文件addusers1的属主添加执行权限,同时取消组用户和其他用户对文件的读取权限#lladdusers -rw-r-r- 1 root root 399 May 2 18:14 addusers1 #chmodu+x,go-raddusers1 #lladdusers1 -rwx- 1 root root 399 May 2 18:14 addusers1 权限的数值设定法权限的数值设定法chmod命令的数值设定法格
21、式chmodn1n2n3n1n2n3其中n1代表属主的权限,n2代表组用户的权限,n3代表其他用户的权限n1、n2、n3选项都是8进制数字,其意义如下:p148B9-14操作举例: 取消组用户和其他用户对文件users1的一切权限#llusers1 -rw-r-r- 1 root root 24 May 2 18:15 users1 #chmod600users1 #llusers1 -rw- 1 root root 24 May 2 18:15 users1 更改属主和组更改属主和组chown命令功能:更改属主和组。格式:#chown-R参数-R:表示对目录及其子目录进行递归设置。举例:将文
22、件users1的属主改成osmond#chmodosmondusers1将文件users1的组改成staff#chmod.staffusers1将文件users的属主和组都改成osmond#chownosmond.osmondusers将mydir目录及其子目录下的所有文件或目录的属主和组都改成osmond#chownRosmond.osmondmydir三种特殊权限简介三种特殊权限简介SUID当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行, 也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。SGID当
23、一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。sticky-bit对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。特殊权限实例特殊权限实例SUID的典型例子是passwd程序# ll /usr/bin
24、/passwd -r-s-x-x 1 root root 16336 Feb 14 2003 /usr/bin/passwd 设置了sticky-bit的典型例子是系统临时文件目录/tmp# ll -d /tmp drwxrwxrwt 4 root root 4096 May 3 08:20 /tmp特殊权限的文字表示特殊权限的文字表示SUID和SGID用s表示;Sticky-bit用t表示SUID是占用属主的x位置来表示SGID是占用组的x位置来表示Sticky-bit是占用其他人的x位置来表示的在表示上有大小写之分假若同时设置执行权限和SUID、SGID与Sticky,权限标识字符是小写的
25、形式倘若关闭执行的权限,则标识字符会变成大写例如:-rwsr-sr-t 1 root root 9Aug 19 21:47 showme -rwSr-Sr-T 1 root root 9Aug 19 21:47 showme-rwsr-Sr-T 1 root root 9Aug 19 21:47 showme-rwsr-Sr-t 1 root root 9Aug 19 21:47 showme -rwsr-sr-T 1 root root 9Aug 19 21:47 showme设置特殊权限举例设置特殊权限举例 为程序/usr/bin/myapp添加SUID权限#chmodu+s/usr/bi
26、n/myapp为目录/home/groupspace添加SGID权限#chmodg+s/home/groupspace为目录/home/share添加sticky权限#chmodo+t/home/share为程序/usr/bin/myapp添加SUID权限#chmod4755/usr/bin/myapp为目录/home/groupspace添加SGID权限#chmod2755/home/groupspace为目录/home/share添加sticky权限#chmod1755/home/share用户和组其它命令 whoami:用于显示当前用户的名称。groups : 用于显示指定用户所属的组,
27、如未指定用户则显示当前用户所属的组。id:用于显示用户当前的uid、gid和用户所属的组列表。newgrp : 用于转换用户的当前组到指定的附加组,用户必须属于该组才可以进行。赋予用户特殊权限 su -: 用于转换当前用户到指定的用户账号,若不指定用户名则转换当前用户到root。 若使用参数“-”则在转换当前用户的同时转换用户工作环境。 (需要知道密码) sudo:授权许可使用 例:sudo vi /etc/passwd Sudo特点: 1. sudo能够限制指定用户在指定主机上运行某些命令。 2. sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日
28、志服务器。 3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。 4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。 配置sudo 配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。 之所以使用visudo有两个原因,一是它能够防止 两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用
29、户,你也最好用visudo来检查一下语法。/etc/sudoers/etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用号来续行,这样看来一个规则也可以拥有多个行;/etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的;/etc/sudoersu忽略空行和注释行(以“#”开头)u任选的主机别名行用于创建主机列表的短名称,主机别名行以Host_Alias开始,列表中的主机用逗号分隔 Host_Alias Computer=server1,server2u任选的用
30、户别名为用户列表创建短名称,用户别名行以User_Alias开头 User_Alias Assistants=wang,mikeu任选的命令别名行用于创建命令表的短名称 Cmnd_Alias Cmds=/bin/rm,/bin/chmod,/bin/chownu任选的运行别名用于为用户的列表创建短名称,运行别名用于告诉sudo以一个别名用户来运行命令 Runas_Alias Op=root,operatoru必需的用户访问说明行 user host=run as user command list wang server1=/sbin/shutdownu在一行可以定义多个别名,别名用冒号分开
31、User_Alias Assis=wang,mike:WWW=jack示例:Cmnd_Alias USERS=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd A-Za-z*,!/usr/bin/passwd root Wang ALL=NOPASSWD:USERS示例: User_Alias SeniorAdm=wang User_Alias Assis=mike,jack User_Alias WWW=user1,user2 SeniorAdm ALL=ALL Assis ALL=/sbin/shutdown WWW ALL=NOPASSWD:ALL,!/sbin/shutdown特殊的关键字:ALL(所有的事情),NOPASSWD(不需要口令),!(取消命令的特权)5.6查看用户行为查看当前用户的系统行为rootrhel5 # w查看系统当前的在线用户rootrhel5 # who查看曾经登录系统的用户rootrhel5 # last