Linux用户、组和文件权限软件学院田丽华管理Linux用户与组管理并保护Linux用户环境使用权限保护文件和目录Linux用户安全功能Linux操作系统的一个重要特点多用户多任务如何维护数据和应用程序安全的环境文件系统安全性组件用户和组所有权和访问权限文件系统安全性组件以通过实施以下类型的组件控制对Linux文件系统的访问用户:用户在Linux系统中是单个的帐户。组:组是用户的集合。在创建用户时将其分配到组中。仅根用户或拥有者可以更改分配了文件或目录的组。每个用户必须至少属于一个组。所有权:创建文件或目录的用户将自动指定为文件或目录的拥有者。所有权只能由根用户手工更改。权限:权限决定了用户对文件或目录的访问权。用户和组Linux系统通过用户帐户唯一识别所有用户,这些帐户需要用户名和密码才能登录系统Linux使用组可以将用户关联起来,这些用户需要对数据和应用程序有相同的访问特权。用户和组用户和组ID编号一般用户和系统用户用户帐户和主目录用户和组配置文件用户和组ID编号由于操作系统对数字的处理能力优于字符串,因此在Linux系统内部将用户和组作为数字来管理。用户接收到的数字称为用户ID(UID)。每个Linux系统都有一个特权用户,即根用户。该用户的UID始终为0和用户一样,也为组分配了内部编号,称为组ID(GID)。使用命令id显示用户的UID及其所在组的信息。使用指令groups显示用户所在组的信息finger指令可以获得有关本地用户的更多信息一般用户和系统用户在Linux操作系统中,有两类基本的用户帐户:一般(普通)用户。创建的这些用户帐户允许员工和其他人登录Linux环境。此类登录为访问者提供访问数据和应用程序的安全环境。这些用户帐户由系统管理员管理。系统用户。这些用户在安装时创建,用来使服务、实用程序和其他应用程序在服务器上有效运行。系统用户由属于rpm包的脚本创建。用户帐户和主目录每个用户都有一个由登录名标识的用户帐户和一个用于登录系统的个人口令。使用用户帐户,可以保护用户的个人数据不被其他用户修改、查看或损坏。每个用户都可以设置自己的工作环境,而且此环境在该用户以后登录时保持不变。作为一种安全措施,系统中每个用户都在目录/home/下拥有自己的目录,主目录可以确保个人数据和桌面设置仅供用户访问。用户和组配置文件Linux系统将所有用户和组的配置数据保存在以下文件中:/etc/passwd/etc/shadow/etc/group/etc/passwd文件/etc/passwd存储每个用户的信息,如用户名、UID、GID、主目录和标准shell。Suse普通用户的uid从1000后开始Redhat普通用户的uid从500开始/etc/shadow/etc/shadow文件保存加密的用户口令和口令失效信息,仅根用户可以更改此文件/etc/group/etc/group文件保存组信息文件中的每一行表示一个组的记录,包含组名、GID(组ID)和组的成员。video:x:33:geeko,tux这是/etc/group中组video的项,组的GID为33。用户geeko和tux是该组的成员。第二个字段(x)是口令字段。/etc/group文件显示次组成员,但不标识用户的主组所有权和访问权限文件系统中的每个文件和目录都具有一定的访问权限。指派的权限决定给定用户的访问级别。权限的指派分为三个级别:用户。指派给文件或目录所有者的权限决定了所有者的访问级别。组。为组指派的权限确定了组成员对文件或目录的访问级别。其他。指派给该实体的权限用于已鉴定的用户,这些用户本身不是组的成员但已和文件或目录相关联。管理Linux用户和组使用useradd命令创建新的用户帐户useraddtuxuseradd–mtuxuseradd–guser1–e2008-12-31tux使用passwd命令修改用户帐户的口令passwdtux使用userdel可以删除现有的用户帐户,命令提供一个选项-r,可以删除用户的主目录和用户帐户userdeltuxusermod该命令可以用来修改现有用户帐户的设置(如UID、标准shell、主目录和主组)。usermod-d/newhome/geeko-mgeekousermod-u501geekopasswd。此命令可以用来更改用户的口令任何用户都可以输入passwd(不带选项)更改口令;根用户可以输入passwd用户名更改任何用户的口令。锁定用户帐户passwd-ltuxpasswd-utux显示用户帐户的口令状态passwd–Stux显示口令上次更改日期、最短有效期、最长有效期、警告时间和口令失效时的不活动时间更改口令时间passwd-x30-w5tux将口令的最长有效期改为30天,并在口令失效前5天向用户发出警告groupadd创建新的组groupaddgroup_name将使用下一个空闲的GIDgroupadd-g200tux-g可以指定GIDgroupdel可以输入groupdelg_name删除组。此命令没有选项。只能删除那些没有被任何用户指定为主组的组。groupmod。可以修改现有组的设置(如GID、组名和用户)。使用这些命令需要以根用户的身份登录用户和组切换作为系统管理员,建议您以普通用户的身份登录,且仅在执行需要使用根用户权限的任务时再切换为根用户su。su–使用newgrp切换到其他组一个用户可以是多个不同组的成员,但在某个时刻只有一个GID才是其有效(当前)的组。通常该组是在/etc/passwd文件中指定的主组。可以通过输入exit撤销该更改使用sudo委托管理任务有时,有必要让普通用户能够访问通常为根用户保留的命令。例如,在您休假期间可能要由同事接管一些工作,如关闭计算机和创建用户。要启用由普通用户执行的根用户的命令,普通用户可以使用命令sudo作为管理员,可以通过配置文件/etc/sudoers来指定用户可以或不可以输入的命令。以下是配置文件中某项的一般语法:用户/组主机=命令1,命令2...例如:geekoALL=/sbin/shutdown在本例中,用户geeko可以在所有计算机(ALL)上以根用户权限执行命令/sbin/shutdown。根用户visudo编辑配置文件/etc/sudoers普通用户执行命令sudo/sbin/shutdown-hnow使用权限保护文件和目录权限和权限值可以对文件或目录指派以下三种权限:读(r)。该权限允许读取文件并列出目录内容。写(w)。该权限允许修改文件。还允许在目录内创建或删除文件。执行(x)。该权限允许执行文件。还允许访问目录。ls-lLinux系统中的每个文件和目录都指定有数字权限值。该值有3位数字。第一位数字表示指派给文件或目录所有者的权限。第二位数字表示指派给和文件及目录相关的组的权限。第三位数字表示指派给其他用户的权限。每位数字都是指派的以下三个值的和:读:4写:2执行:1751表示rwxr-x--x设置权限chmodchmod使用此命令添加、删除文件或目录的权限,还可以指派权限。文件的所有者和根用户都可以使用该命令(ugoa)。chown和chgrp更改指派给文件或目录的所有者和组。作为根用户,可以使用命令chown,通过chownnew_user.new_groupfile更改与文件相关的用户和组要仅更改所有者(而不更改组),使用chown新的用户文件要仅更改组(而不更改用户),使用chown.新的组文件使用chgrp命令更改与文件相关的组chgrpnew_groupfile修改默认访问权限如果默认设置没有更改,默认情况下将以访问方式666创建文件,并以访问方式777创建目录。要修改(限制)这些默认访问方式设置,可以使用命令umask。该命令将和3位数字值(如022)一起使用。umask022目录名umask077文件名要保持umask设置,可以在系统范围的配置文件/etc/profile中更改umask值。如果要将设置变为用户指定的,请在相应用户主目录下的.bashrc文件中输入umask值。配置特殊文件权限粘滞位在其他(t)用户的权限列表中列出drwxrwxrwtSUID在所有者的权限的可执行位上-rwsr-xr-xSGID在同组用户的权限的可执行位上-rwxr-sr-x配置特殊文件权限如果设置了SUID或SGID的特性,将以所有者权限(在以下SUID的示例中为:root)或组权限(在以上SGID的示例中为:tty)执行程序。配置特殊文件权限设置SUID或SGID是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者或组的权限chmodu+sfilename设置SUID位chmodu-sfilename去掉SUID设置chmodg+sfilename设置SGID位chmodg-sfilename去掉SGID设置