450 likes | 609 Views
本章重点内容. 账户实质 账户文件 账户设置 权限表示 权限设置. 本章学习目标. 理解账户实质 熟悉账户配置文件 学会设置和管理口令 理解 Linux 系统的权限 学会设置基本操作权限 了解特殊权限的使用. 账户概述. 账户实质 账户实质上就是一个用户在系统上的标识,系统 依据账户来区分每个用户的文件、 进程、任务, 给每个用户提供特定的工作环境(如用户的工作 目录、 shell 版本、 以及 X-Windows 环境的配置 等),使每个用户的工作都能独立不受干扰地进 行。. 账户概述. Linux 中的账户包括 用户账户
E N D
本章重点内容 账户实质 账户文件 账户设置 权限表示 权限设置
本章学习目标 理解账户实质 熟悉账户配置文件 学会设置和管理口令 理解Linux系统的权限 学会设置基本操作权限 了解特殊权限的使用
账户概述 账户实质 账户实质上就是一个用户在系统上的标识,系统 依据账户来区分每个用户的文件、 进程、任务, 给每个用户提供特定的工作环境(如用户的工作 目录、shell版本、 以及X-Windows环境的配置 等),使每个用户的工作都能独立不受干扰地进 行。
账户概述 Linux中的账户包括 用户账户 超级用户:UID=0,GID=0 普通用户:UID>=500 虚拟用户:0<UID<500 组账户 标准组:标准组可以容纳多个用户,若使用标准组, 在创建一个新的用户时就应该指定他所属于的组。 私有组:私有组中只有用户自己。当在创建一个新用户user时, 若没有指定他所属于的组,Red Hat 就建立一个和该用户同名的私有组。
账户概述 用户和组的关系 组是用户的集合。一个标准组可以容纳多个用户。 同一个用户可以同属于多个组,这些组可以是私有组,也可以是标准组。 当一个用户同属于多个组时,将这些组分为: 主组:用户登录系统时的组。 附加组:可切换的其他组。
系统账户文件 用户口令文件/etc/passwd 文件权限:(-rw-r--r--) 用户影子口令文件/etc/shadow 文件权限:(-r--------) 组账号文件/etc/group 文件权限: (-rw-r--r--) 组口令文件/etc/gshadow 文件权限:(-r--------)
Red Hat 的账户管理 默认启用shadow passwords功能。 /etc/passwd文件对任何用户均可读, 为了增加系统的安全性, 用户的口令通常用shadow passwords保护。 经过shadow passwords保护的账户密码和相关设置信息保存在/etc/shadow文件里。 /etc/shadow只对root用户可读。 默认使用MD5算法的用户口令。 一般不设置组口令。因为绝大多数应用程序不使用组口令。 Red Hat 建议尽量使用私有组来提高系统安全性。
使用命令行添加用户账号 命令格式:# useradd [<选项>] <用户名> 常用选项: -g group:指定新用户的主组。 -G group:指定新用户的附加组。 -d directory:指定新用户的自家目录。 -s shell:指定新用户使用的Shell,默认为bash。 -e expire:指定用户的登录失效时间,例如:08/31/2006 -M:不建立新用户的自家目录。
使用命令行添加用户账号 操作举例: # useradd user1 # useradd -s /bin/tcsh jason # useradd -g mygroup -e 12/31/2006 user2 # useradd -G staff tom # useradd -G ftpgrp -d /var/ftp2 -s /sbin/nologin -M anftp1
口令设置 使用useradd命令创建用户账户之后需要使用passwd命令设置初始口令 格式:# passwd [<用户名>] 举例: 为指定用户设置口令 # passwd jason 修改用户自己的口令 $ passwd
使用命令行修改用户账号 命令格式:# usermod [<选项>] <用户名> 常用选项:选项与useradd命令基本相同。 操作举例: # usermod -G softgroup jjh
使用命令行删除用户账号 命令格式:# userdel [<选项>] <用户名> 常用选项:-r 用于删除用户的宿主目录 操作举例: # userdel user2 # userdel -r user1
使用命令行添加组账号 命令格式:# groupadd [<参数>] <组账号名> 常用选项: -r:用于创建系统组账号(GID小于500 ) -g:用于指定GID 操作举例: # groupadd mygroup
使用命令行修改组账号 命令格式:# groupmod [<参数>] <组账号名> 常用选项: -g:改变组账号的GID ,组账号名保持不变。 -n:改变组账号名。 操作举例: # groupmod -g 503 mygroup # groupmod -n newgroup mygroup
使用命令行删除组账号 命令格式:# groupdel <组账号名> 注意事项: 被删除的组账号必须存在 当有用户使用组账号作为私有组时不能删除 与用户名同名的私有组账号在使用userdel命令删除用户时被同时删除 操作举例: # groupdel mygroup
口令管理(p141) 禁用用户账户口令 # passwd -l <用户账号名> 查看用户账户口令状态 # passwd -S <用户账号名> 恢复用户账户口令 # passwd -u <用户账号名> 删除用户账户口令 # passwd -d <用户账号名>
口令时效 口令时效简介 口令时效是系统管理员用来防止机构内不良口令的一种技术。 口令时效意味着过了一段预先设定的时间后(通常是90天), 用户会被提示创建一个新口令。 强制用户在一段时间之后更改口令的机制称为口令时效。
口令时效 chage命令 命令格式:# chage [<选项>] <用户名> 常用选项: -m days:指定用户必须改变口令所间隔的最少天数。如果值 为 0,口令就不会过期。 -M days:指定口令有效的最多天数。 当该选项指定的天数加 上-d 选项指定的天数小于当前的日期,用户在使用 该账号前就必须改变口令。 -d days:指定自从1970年1月1日起,口令被改变的天数。 -I days:指定口令过期后,账号被锁前不活跃的天数。 如果 值为0,账号在口令过期后就不会被锁。 -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 user1
用户和组状态命令 常用的用户和组状态命令 whoami:用于显示当前用户的名称。 groups [<用户名>]: 用于显示指定用户所属的组,如未指定用户则显示当前用户所属的组。 id:用于显示用户当前的uid、gid和用户所属的组列表。 su [-][<用户名>]: 用于转换当前用户到指定的用户账号,若不指定用户名则转换当前用户到root。 若使用参数“-”则在转换当前用户的同时转换用户工作环境。 newgrp [<组名>]: 用于转换用户的当前组到指定的附加组,用户必须属于该组才可以进行。
用户和组状态命令 常用的用户和组状态命令操作举例 参见教材操作步骤9.2。
操作权限概述 Linux是多用户的操作系统,允许多个用户同时在系统上登录和工作。 为了确保系统和用户的安全,Linux采取了很多的安全措施。 通过用户的代号(UID)来确定每个用户在登录系统后都做了些什么, 也可以用来区别不同用户所建立的文件或目录。 Linux文件系统安全模型是通过给系统中的文件赋予三个属性来起作用的,这三个赋予每个文件的属性称为所有者、组和访问权限。 Linux下每一个文件必须严格地属于一个用户和一个组。
使用系统资源的四类人员 在Linux中,将使用系统资源的人员分为四类: 超级用户 文件或目录的属主 属主的同组人 其他人员
使用系统资源的四类人员 由于超级用户具有操作Linux系统的一切权限,所以不用指定超级用户对文件和目录的访问权限。 对于其他三类用户都要指定对文件和目录的访问权限。 用户只能不受限制的操作自家目录及其子目录下的所有文件。 对系统中其他目录的访问受到同组和其他人的访问限制。
设置文件权限的准则 尽量使用私有组,保护用户各自的文件或目录。 应随时了解指定给文件和目录的权限,定期检查文件和目录以确保指定了正确的权限。 如果在目录下发现陌生的文件请向系统管理员或安全人员报告。 为文件和目录指定权限时请慎重考虑只有在具有充分的理由。 例如:处理小组项目时组员可能需要访问特定的文件或目录需要让他人访问时再将访问权限授予他人。
三种基本的访问权限 三种基本的访问权限 读(r) 写(w) 执行(x) 三种基本的访问权限对文件的含义 r:可以读文件的内容 w:可以修改该文件 x:可以执行该文件
三种基本的访问权限 三种基本的访问权限对目录的含义 r:可以列出目录中的文件列表 w:可以在该目录中创建、删除文件 x:可以使用cd命令进入该目录 目录权限提示 有只读权限的用户不能用 cd 进入该目录;还必须有执行权限才能进入。 有执行权限的用户只有在知道文件名并拥有该文件的读权限的情况下才可以访问目录下的文件。 必须有读和执行权限才可以使用 ls 列出目录清单,或使用 cd 进入目录。 如用户有目录的写权限,则可以创建、删除或修改目录下的任何文件或子目录,既使该文件或子目录属于其他用户。
查看文件和目录的权限 使用如下命令查看权限 $ ls -l 常见的权限字符串及其含义 字符 数值 说明 -rw------- 600 只有属主才有读取和写入的权限。 -rw-r--r-- 644 只有属主才有读取和写入的权限;同组人和 其他人只有读取的权限。 -rwx------ 700 只有属主才有读取、写入、和执行的权限。 -rwxr-xr-x 755 属主有读取、写入、和执行的权限;同组人 和其他人只有读取和执行的权限。
权限的文字设定法 chmod命令的文字设定法格式 chmod [ugoa][+-=][rwxugo] <文件名或目录名> 人员标识 属主(u) 同组(g) 其他人(o) 所有的人员(a)
权限的文字设定法 设定方法 + :增加权限 - :删除权限 = :分配权限,同时删除旧的权限 权限字符 r(读) w(写) x(执行) u(和属主的权限相同) g(和所属组用户的权限相同) o(和其他用户的权限相同)
权限的文字设定法举例 取消组用户和其他用户对文件users的读取权限 # ls -l users -rw-r--r-- 1 root root 42 May 2 18:07 users # chmod go-r users # ll users -rw------- 1 root root 42 May 2 18:07 users
权限的文字设定法举例 对文件addusers的属主添加执行权限 # ll addusers -rw-r--r-- 1 root root 452 May 2 17:44 addusers # chmod u+x addusers # ll addusers -rwxr--r-- 1 root root 452 May 2 17:44 addusers
权限的文字设定法举例 对文件addusers1的属主添加执行权限,同时取消组用户和其他用户对文件的读取权限 # ll addusers -rw-r--r-- 1 root root 399 May 2 18:14 addusers1 # chmod u+x,go-r addusers1 # ll addusers1 -rwx------ 1 root root 399 May 2 18:14 addusers1
权限的数值设定法 chmod命令的数值设定法格式 chmod n1n2n3 <文件名或目录名> n1n2n3 其中n1代表属主的权限,n2代表组用户的权限,n3代表其他用户的权限 n1、n2、n3选项都是8进制数字,其意义如下:
权限的数值设定法 读 写 执行 二进制 八进制 说明 - - - 000 0 没有权限 - - x 001 1 允许执行 - w - 010 2 允许写入 - w x 011 3 允许执行和写入 r - - 100 4 允许读取 r - x 101 5 允许执行和读取 r w - 110 6 允许写入和读取 r w x 111 7 允许执行写入和读取
权限的数值设定法举例 对文件addusers的属主设置可读、写和执行权限, 所属组用户和其他用户只设置读和执行的权限,没有写的权限。 # ll addusers -rwxr--r-- 1 root root 452 May 2 17:44 addusers # chmod 755 addusers # ll addusers -rwxr-xr-x 1 root root 452 May 2 17:44 addusers
权限的数值设定法举例 取消组用户和其他用户对文件users1的一切权限 # ll users1 -rw-r--r-- 1 root root 24 May 2 18:15 users1 # chmod 600 users1 # ll users1 -rw------- 1 root root 24 May 2 18:15 users1
更改属主和组 chown命令 功能:更改属主和组。 格式: # chown [-R] <用户[.组]> <文件或目录> 参数-R:表示对目录及其子目录进行递归设置。
更改属主和组 举例: 将文件users1的属主改成osmond # chmod osmond users1 将文件users1的组改成staff # chmod .staff users1 将文件users的属主和组都改成osmond # chown osmond.osmond users 将mydir目录及其子目录下的所有文件或目录的属主和组都改成osmond # chown –R osmond.osmond mydir
三种特殊权限简介 SUID 当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的 身份运行, 也就是说无论谁来执行这个文件,他都有文件所有者的 特权。如果所有者是 root 的话,那么执行人就有超级用户的特权 了。 SGID 当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的 特权, 任意存取整个组所能使用的系统资源。若一个目录设置了 SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设 为和这个目录一样,除非在复制文件时加上-p (preserve,保留文 件属性)的参数,才能保留原来所属的群组设置。 sticky-bit 对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须 由属主执行删除、移动等操作。对一个目录设置了sticky-bit之后, 存放在该目录的文件仅准许其属主执行删除、 移动等操作。
特殊权限实例 SUID的典型例子是passwd程序 # ll /usr/bin/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,权限标识字符是小写的形式 倘若关闭执行的权限,则标识字符会变成大写
特殊权限的文字表示 例如: -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
特殊权限的数值表示 三种特殊权限可以用单独的一位8进制数值表示 SUID、SGID和sticky-bit的数值表示 SUID SGID sticky 二进制 八进制 说明 - - - 000 0 不设置特殊权限 - - t 001 1 只设置sticky - s - 010 2 只设置SGID - s t 011 3 只设置SGID和sticky s - - 100 4 只设置SUID s - t 101 5 只设置SUIDsticky s s - 110 6 只设置SUID和SGID s s t 111 7 设置三种特殊权限
设置特殊权限举例 为程序/usr/bin/myapp添加SUID权限 # chmod u+s /usr/bin/myapp 为目录/home/groupspace添加SGID权限 # chmod g+s /home/groupspace 为目录/home/share添加sticky权限 # chmod o+t /home/share 为程序/usr/bin/myapp添加SUID权限 # chmod 4755 /usr/bin/myapp 为目录/home/groupspace添加SGID权限 # chmod 2755 /home/groupspace 为目录/home/share添加sticky权限 # chmod 1755 /home/share