分类: LINUX
2008-06-15 11:37:05
/etc/sudoers中的授权规则
授权规则是分配权限的执行规则,我们前面所讲到的定义别名主要是为了更方便的授权引用别名;如果系统中只有几个用户,其实下放权限比较有限的话,可以不用定义别名,而是针对系统用户直接直接授权,所以在授权规则中别名并不是必须的;
授权用户 主机=命令动作
这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略;
授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]......
注解:
凡是[ ]中的内容,是可以省略;命令与命令之间用,号分隔;可以使用NOPASSWD参数,就不要在运行命令时提示密码输入;
举例:
jekay ALL=(root) /bin/chown,/bin/chmod 执行时会提示输入jekay的密码
jekay ALL=(root) NOPASSWD: /bin/chown,/bin/chmod 就不需要密码
jekay ALL=(root) NOPASSWD: /bin/more
切换到jekay用户下使用more /etc/shadow就可以了,不会提示输入密码
User_Alias SYSUSER=jekay
SYSUSER ALL=(root) /sbin/fdisk
使用用户别名来完成;
sudo [参数选项] 命令
-l 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v 验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;
-u 指定以以某个用户执行特定操作;
-k 删除时间戳,下一个sudo 命令要求用求提供密码;
3、添加用户规则文件 /etc/login.defs 和 /etc/default/useradd
/etc/login.defs 配置文件
/etc/login.defs 文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的;
/etc/logins.defs 文件内容;
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail 注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件;
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999 注:用户的密码不过期最多的天数;
PASS_MIN_DAYS 0 注:密码修改之间最小的天数;
PASS_MIN_LEN 5 注:密码最小长度;
PASS_WARN_AGE 7 注:
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500 注:最小UID为500 ,也就是说添加用户时,UID 是从500开始的;
UID_MAX 60000 注:最大UID为60000;
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500 注:GID 是从500开始;
GID_MAX 60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is ORed with the -m flag on
# useradd command line.
#
CREATE_HOME yes 注:是否创用户家目录,要求创建;
/etc/default/useradd 文件
通过useradd 添加用户时的规则文件;
# useradd defaults file
GROUP=100
HOME=/home 注:把用户的家目录建在/home中;
INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;
EXPIRE= 注:帐号终止日期,不设置表示不启用;
SHELL=/bin/bash 注:所用SHELL的类型;
SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;
二、用户相关工具命令;
1、添加用户工具有useradd和adduser ,这两个工具所达到的目的都是一样的;
2、通过修改用户配置文件/etc/passwd和/etc/groups的办法来实现;
3、还有图形下的工具;
1、useradd 工具
Useradd添加用户时,先读取/etc/login.defs和/etc/default/useradd中所定义的规则添加用户;并向/etc/passwd和/etc/groups文件添加用户和用户组记录;当然/etc/passwd和/etc/groups的加密文件也同步生成记录;同时发生的还有系统会自动在/etc/add/default中所约定的目录中建用户的主目录,并复制/etc/skel中的文件(包括隐藏文件)到新用户的主目录中;
useradd 的语法:
(1) 对/etc/default/useradd进行修改,设置添加的新用户的默认设置;
useradd -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]
-D
选项出现时,显示/etc/default/useradd配置文件中设置的useradd的设置;
-b default_home
注:定义用户所属目录的前一个目录。用户名称会附加在default_home后面用来建立新用户的目录。当然使用-d后则此选项无效。
-e default_expire_date
注:用户帐号停止日期。
-f default_inactive
注:帐号过期几日后停权。
-g default_group
注:新帐号起始用户组名或ID。用户组名须为现有存在的名称。用户组ID也须为现有存在的用户组。
-s default_shell
注:用户登入后使用的shell名称。往后新加入的帐号都将使用此shell.
如不指定任何参数,useradd显示目前预设的值。
(2)useradd 添加用户;
useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] name
useradd
可使用的选项为
-c comment
注:新帐号 password 档的说明栏 。
-d home_dir
注:新帐号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。
-e expire_date
注:帐号终止日期。日期的指定格式为MM/DD/YY。
-f inactive_days
注:帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1
-g initial_group
注:group名称或以数字来做为用户登入起始用户组(group)。用户组名须为现有存在的名称。用户组数字也须为现有存在的用户组。预设的用户组数字为1。
-G group,[...]
注:定义此用户为此一堆groups的成员。每个用户组使用","区格开来,不可以夹杂空白字元。用户组名同-g选项的限制。定义值为用户的起始用户组。。
-m
注:用户目录如不存在则自动建立。如使用-k选项skeleton_dir内的档案将复制至用户目录下。然而在/etc/skel目录下的档案也会复制过去取代。任何在skeleton_dir or /etc/skel的目录也相同会在用户目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。
-M
不建立用户目录,即使/etc/login.defs系统档设定要建立用户目录。
-n
预设值用户用户组与用户名称会相同。此选项将取消此预设值。
-r
此参数是用来建立系统帐号。系统帐号的UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立用户目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有用户目录须额外指定-m参数来建立系统帐号。
-s shell
注:用户登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。
-u uid uid
用户的ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为以/etc/login.defs中的UID_MIN的值为准,0到UID_MIN的值之间,为系统保留的UID ;
2、userdel 用法;
userdel 的语法格式:
userdel [-r] 名称
userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;
userdel 参数 用户名
警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录;如果用户目录下有重要的文件,在删除前请备份;