Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10706499
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:20:39

4/etc/gshadow  用户组帐号的加密文件
[root@jekay /]# cat /etc/gshadow
用户组名    用户组密码   用户组的管理者   组成员列表
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon
tty:::
……
/etc/gshadow/etc/group的加密文件;
用户组密码,用于结构比较复杂的权限模型;
5/etc/skel 目录  用来初始化用户的主目录
[root@jekay /]# ls -al /etc/skel
total 20
drwxr-xr-x    2 root     root         4096 Mar 27 16:59 .
drwxr-xr-x   32 root     root         4096 Mar 27 17:04 ..
-rw-r--r--    1 root     root           24 Feb 11  2003 .bash_logout
-rw-r--r--    1 root     root          191 Feb 11  2003 .bash_profile
-rw-r--r--    1 root     root          124 Feb 11  2003 .bashrc
目录中存放有与用户相关的配置文件。一般来说,每个用户都有自己的主目录,用户
成功登录后就处于自己的主目录下。
     当为新用户创建主目录时,系统会在新用户的主目录下建立一份/etc/skel目录下所有文件的拷贝,用来初始化用户的主目录。
2、超级权限控制sudo 的配置文件 /etc/sudoers
root超级用户是系统最高权限的拥有者;几乎无所不能,多数的系统设置和权限设置对root帐号来说是无用的;所以root帐号权限管理不善就会造成系统安全的隐患;
在对系统操作时尽量避免使用root登陆,也应该尽量避免直接使用root帐号对系统进行配置和操作;但有时普通用户可能需要root权限来完成必要的系统管理工作,我们可以使用susudo来实现;
用户帐号类型:
超级用户:Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。root用户的特权性还表现在root可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等;也可以对文件和目录进行属主和权限进行修改,以适合系统管理的需要(因为root是系统中权限最高的特权用户);UID0
普通用户和伪装用户:与超级用户相对的就是普通用户和虚拟(也被称为伪装用户),普通和伪装用户都是受限用户;但为了完成特定的任务,普通用户和伪装用户也是必须的;Linux是一个多用户、多任务的操作系统,多用户主要体现在用户的角色的多样性,不同的用户所分配的权限也不同;这也是Linux系统比Windows系统更为安全的本质所在;
但值得注意的是超级用户的操作是在系统最高许可范围内的操作;有些操作就是具有超级权限的root也无法完成;如:/proc目录、加了写保护的文件等;
[root@jekay /]# ls -ld /proc
dr-xr-xr-x   47 root     root            0 Mar 27 12:03 /proc
 
[root@jekay tmp]# chattr +i file
[root@jekay tmp]# rm -f file
rm: cannot remove `file': Operation not permitted
 
获取超级权限的过程,就是切换普通用户身份到超级用户身份的过程;这个过程主要是通过susudo 来解决;
使用 su 命令临时切换用户身份
su命令就是切换用户的工具;
su [OPTION选项参数] [用户]
  -, -l, --login 登录并改变到所切换的用户环境;
  -c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
 
su 在不加任何参数,默认为切换到root用户,不改变shell环境;
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但如果登陆的用户比较多,而多个用户都需要使用root权限,这时就可能会造成安全隐患,而且由于切换的过程是打开rootshell环境,很多情况下也会造成root权限外泻;
sudo工具
由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su
    sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
sudo的配置文件是/etc/sudoers ;可通过命令visudo直接进行编辑;
通过sudo -l 来查看哪些命令是可以执行或禁止的;
/etc/sudoers 文件中每行算一个规则,前面带有#号可以当作是说明的内容,并不执行;如果规则很长,一行列不下时,可以用\号来续行,这样看来一个规则也可以拥有多个行;
/etc/sudoers 的规则可分为两类;一类是别名定义,另一类是授权规则;别名定义并不是必须的,但授权规则是必须的;
默认/etc/sudoers配置文件
[root@jekay]# cat /etc/sudoers
# sudoers file.
# This file MUST be edited with the 'visudo' command as root.
# See the sudoers man page for the details on how to write a sudoers file.
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# User privilege specification
root    ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
# Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
 
别名规则定义格式如下:
Alias_Type NAME = item1, item2, ...
Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
别名类型(Alias_Type):别名类型包括如下四种
Host_Alias 定义主机别名;项目可以是主机名、可以是单个ip(整段ip地址也可以),也可以是网络掩码;
Host_Alias BE01=localhost,bt05,tt04,10.0.0.4,255.255.255.0,192.168.1.0/24 注:定义主机别名HT01,通过=号列出成员
User_Alias 用户别名,别名成员可以是用户,用户组(前面要加%号)
User_Alias SYSAD=jekay,linux,lt,benet:NETAD=jekay:WEBMASTER=admin
Runas_Alias 用来定义runas别名,这个别名指定的是目的用户,即sudo 允许切换至的用户;
Runas_Alias OP = root, operator
Cmnd_Alias 定义命令别名;
Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/parted
Cmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/network
Cmnd_Alias KILL = /usr/bin/kill
 
NAME 就是别名了,NMAE的命名是包含大写字母、下划线以及数字,但必须以一个大写字母开头;
item 按中文翻译是项目,在这里我们可以译成成员,如果一个别名下有多个成员,成员与成员之间,通过半角,号分隔;成员在必须是有效并事实存在的。
item成员受别名类型 Host_AliasUser_AliasRunas_AliasCmnd_Alias 制约,定义什么类型的别名,就要有什么类型的成员相配。我们用Host_Alias定义主机别名时,成员必须是与主机相关相关联,比如是主机名(包括远程登录的主机名)、ip地址(单个或整段)、掩码等;当用户登录时,可以通过w命令来查看登录用户主机信息;用User_AliasRunas_Alias定义时,必须要用系统用户做为成员;用Cmnd_Alias 定义执行命令的别名时,必须是系统存在的文件,文件名可以用通配符表示,配置Cmnd_Alias时命令需要绝对路径;其中 Runas_Alias User_Alias 有点相似,但与User_Alias 绝对不是同一个概念,Runas_Alias 定义的是某个系统用户可以sudo 切换身份到Runas_Alias 下的成员;我们在授权规则中以实例进行解说;
别名规则是每行算一个规则,如果一个别名规则一行容不下时,可以通过\来续行;同一类型别名的定义,一次也可以定义几个别名,他们中间用:号分隔,

本文出自 “jekay100的博客” 博客,转载请与作者联系!

阅读(1516) | 评论(0) | 转发(0) |
0

上一篇:Linux 用户管理一

下一篇:Linux 用户管理三

给主人留下些什么吧!~~