Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807070
  • 博文数量: 247
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-12 21:53
个人简介

系统未建立

文章分类

全部博文(247)

文章存档

2021年(1)

2020年(3)

2019年(5)

2018年(3)

2017年(44)

2016年(75)

2015年(52)

2014年(63)

2013年(1)

我的朋友

分类: LINUX

2017-04-08 12:41:16

linux权限控制是以用户组为单位的,可以结合某文件的权限进行说明。


多用户多任务概念
单用户多任务:比如以用户A登录系统,打开gedit编辑文件、打开xmms听音乐、打开msn了解朋友动态等
多用户多任务:其他人以其他用户登录同一系统,做其他任务


多用户,并非大家同时挤到一接在一台机器上的键盘和显示器前来操作,他们可以是通过远程登录进行。


用户类型:
超级用户(root,UID=0)
普通用户(UID=500~60000)
伪用户(UID=1~499)


1、伪用户与系统和程序服务相关,如:
bin、deamon、shutdown、halt等,任何linux默认都有这些伪用户
mail、news、games、apache、ftp、mysql、sshd等,与具体的linux服务进程相关
2、伪用户通常不需要或无法登录系统
3、可能没有宿主目录


配置文件:
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件:/etc/login.defs
---------------------------------
/etc/default/useradd
新用户信息文件:/etc/skel
登录信息: /etc/motd、/etc/issue
---------------------------------


/etc/passwd文件格式
第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 root和bin; 
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;请参看本文的UID的解说; 
第四字段:GID;请参看本文的GID的解说;  
第五字段:用户名全称,这是可选的,可以不设置;  
第六字段:用户的家目录所在位置;root这个用户是/root,而linuxsir:x这个用户是/home/linuxsir; 
第七字段:用户所用SHELL 的类型,root和linuxsir 都用的是sh ,所以设置为/bin/sh ;


/etc/shadow 的内容格式
包括9个段位,每个段位之间用:号分割;
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的; 
第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;  
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化; 
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;  
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;  
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义; 
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;  
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;  
第九字段:保留字段,目前为空,以备将来Linux发展之用;  如果更为详细的,请用 man shadow来查看帮助


手工添加用户
分别在/etc/passwd、/etc/shadow添加一条记录;/etc/group添加或修改1条记录
创建用户宿主目录
在宿主目录添加默认的配置文件,拷贝修改
设置用户初始密码


SetUID
当一个可执行程序具有SetUID权限,用户执行时,程序将把当前用户当做程序所有者的身份执行
passwd命令就具有SetUID权限,所有不同用户执行时,可以修改自己的密码
但如何使程序具有SetUID权限呢?????
chmod u+s
chmod g+s
chmod o+t


添加用户命令useradd
useradd设置选项用户名-D查看缺省参数
u:UID
g:GID
d:宿主目录
s:命令解释器
c:描述信息
e:用户失效时间
passwd sam,修改密码




用户组:具有某种共同特征或权限的用户集合起来就是用户组(Group)
用户和用户组的对应关系:1对1、1对多、多对多、多对1


/etc/group 内容格式


 /etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),以行为单位存放用户组,每个用户组格式如下:
group_name:passwd:GID:user_list 
分四个字段: 
第一字段:用户组名称;用户登录时所在的组,一般shell提示符中有
第二字段:用户组密码; 一般不适用
第三字段:GID  
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;


用户组管理命令
groupadd -g 888 userg
groupdel userg
groupmod -n new old改名
gpasswd
-a:添加用户到组
-d:从组中删除用户
-A:设置组管理员
-r:删除组密码
-R:禁止用户切换为该组


修改用户信息
usermod
usermod -l sam -d /home/sam -g webad hosta将用户hosta登录名改为sam,添加到组webad,用户目录改为/home/sam
usermod -G sfgrp sam将用户添加到sfgrp组中


用户管理命令
pwck    检测/etc/passwd文件(锁定文件)
vipw    编辑/etc/passwd文件
id      查看用户id和组信息
finger  查看用户详细信息
su      切换用户(环境变量切换)
passwd -S 查看用户密码状态
who、w  查看当前登录用户信息


用户组管理命令
groups  查看用户隶属于哪些组
newgrp  切换用户组
grpck   用户配置文件检测
chgrp   修改文件所属组
vigrp   编辑/etc/group文件(锁定文件)


用户组权限示例
授权用户jack、mary对目录/sdir写权限
groupadd softadm
usermod -G softadm jack
gpasswd -a mary softadm
chgrp softadm /sdir
chmod g+w /sdir
ls -ld /sdir
drwxrwxr-x  2   root    softadm 512 Jul 11  22:10   /sdir
grep softadm /etc/groupadd
softadm::100:jack,mary


禁用、恢复用户
禁用    usermod -L username; passwd -l username
恢复    usermod -U username; passwd -u username


userel


用户密码管理
change
-l  查看密码设置
-m  密码修改最小天数
-M  密码修改最大天数
-d  密码修改最后日期
-I  密码过期后,锁定账户天数
-E  设置密码过期日期
-W  密码过期前提前几天提醒


启动、停用shadow功能
pwconv/pwunconv
gpwconv/gpwunconv
system-config-users
authconfig、/etc/sysconfig/authconfig


newusers    导入用户信息文件
pwunconv    取消shadow passwd功能
chpasswd    导入密码文件(格式  用户名:密码)
pwconv      将密码写入shadow文件


限制用户su为root
groupadd sugroup
chmod 4550 /bin/su
chgrp sugroup /bin/su
ls -l /bin/su
-r-sr-x--- l root sugroup 18360 Jan 15 2011 /bin/su
设定后,只有sugroup组的用户才能使用su
useradd hul
passwd hul
usermod -G sugroup hul


用sudo代替su(执行sudo,临时成为root;不会泄露root口令;仅向用户提供有限的命令使用权)
配置文件:/etc/sudoers,编辑配置文件命令visudo,普通用户使用sudo
格式: 用户名 (组名) 主机地址=命令(绝对路径)


阅读(1095) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~