首页 > 代码库 > 用户,组,权限

用户,组,权限

useradd
-u, -g,-G(附加组)
-c,-d, -s, -r(创建系统用户)
-M         (不创建家目录)


su - user5 完全切换
su user5  不完全切换
exit 退出切换

usermod
-u, -g, -G, -a, -c, -l(修改用户名)
-s, -L(锁定用户密码)
-U(解锁用户密码)
userdel -r(同时删除家目录)

例:建立a,b,c三个用户
要求,
1,a只属于b,c组,并且默认创建的文件的属组为c
2, b属于a,b组,并且默认创建的文件的属组为b
3,c属于a,b,c组,并且默认创建的文件的属组为a

方法一:
useradd a
useradd b
useradd c

usermod -g c -G b  a
usermod -G a  b
usermod -g a -G b,c  c

方法二:
groupadd a
useradd -G a b
useradd -G a,b c
useradd -g c -G b a
usermod -g a -G b,c c



密码
passwd -d(删除用户密码),
-e(设置用户过期期限),–stdin
chage修改密码过期时间


gpasswd -a(向组中添加用户)
        -d(向组中移除用户)
groupmod -g, -n(修改组名)
groupadd -g, -r(创建系统用户)
groupdel (删除组)

例:

[root@liu ~]# groupadd group3
[root@liu ~]# gpasswd group3    --另一个终端使用root用户新建一个组,给一个组密码
Changing the password for group group3
New Password:
Re-enter new password:


[user5@liu ~]$ groups
group1 user5 group2
[user5@liu ~]$ newgrp group3    --你登录一个你没有加入的组,那么就需要组密码了
Password:
[user5@liu ~]$ groups
group3 user5 group1 group2    --登录成功,现在user5有效组为group3

[user5@liu ~]$ touch 3
[user5@liu ~]$ ll        --这次创建的文件,发现属组变成了group3
total 0
-rw-rw-r--. 1 user5 user5  0 Jul 16 16:08 1
-rw-r--r--. 1 user5 group1 0 Jul 16 16:10 2
-rw-r--r--. 1 user5 group3 0 Jul 16 16:13 3


权限
chmod
id  -u , -g, -G

修改文件或目录的用户与组
chown
例: chown root:exte /date.txt



su切换环境变量,和不切换环境变量

权限管理
 chmod

权限用九位来表示

前三位代表用户(u表示),中间三位代表组(g表示),后三位代表others(o表示)  

权限有三种     r (read)  读    w (write)  写     x (execute)   执行  

r  读  权限
        针对目录,有r权限,就代表能对此目录有列表的功能   (就是ls列出来的功能)
        针对文件,有r权限,就代表能对此文件有阅读的功能   (就是指cat一类的命令)

w  写  权限
        针对目录,有w权限,就代表在此目录下创建(删除)文件或者子目录    (touch,mkdir等)
        针对文件,有w权限,就代表能在此文件写入内容或者修改    (>  ,>>, vi 再写等)
x 执行 权限
        针对目录,有x权限,就代表能进入此目录   (cd)
        针对文件,有x权限,就代表能执行它  (命令,可执行文件等)

a表示all  a=u+g+o

 

特殊权限位(s,t)
s位叫特权位,英文的叫法有setuid,setgid,suid,sgid等

特权位s     
    一个可执行文件拥有s位时,当其它用户来执行这个可执行文件的话,使用的权限是此可执行文件属主或者属组的权限

    只针对前三位,中间三位
    对目录可以加,但是无效,因为目录不是命令,根本不能执行它

 


粘贴位t    --只针对目录有效

特别用在/tmp目录

    有t位的目录,任何用户在有权限的情况下是可以创建文件和目录,就算是有权限删除别人的文件或目录也不能删除
    自己只能删除自己创建的目录,用于一些共享上传的文件服务器场合

s位和t位注意的地方:

用数字表示

前三位上加s        4
中间三位加s        2
后三位加t            1


s位和t位大小写的区别  

        小写的话就表示 有x执行权限
        大写的话就表示 没有x执行权限


 注意:   --普通用户修改密码使用passwd能改自己的密码,但是密码是存放在/etc/shadow里,也就是说普通用户对/etc/shadow没有写的权限,但passwd可执行文件的前三位有s位,所以普通在调用passswd时是用的root的权限

文件属性 (file attributes)

lsattr
chattr


介绍几个常见重要的属性:
属性1:  A

# lsattr 1.txt
-------------e- 1.txt

# chattr +A 1.txt      

        --这个属性让文件的access time访问后也不会变化,节省了IO(IO优化);默认情况下rhel5,访问一次atime就会跟着变一次,rhel6下只有当atime等于或早于mtime和ctime之一时,才会访问跟着变,否则不会变。
 umask:权限遮罩码

 

属性2: a
一个文件加了a属性,重定向覆盖以前的内容不允许,但追加内容是可以的(可用于比如日志文件的场景)
# lsattr 1.txt
-----a-------e- 1.txt

# echo 456 > 1.txt
bash: 1.txt: Operation not permitted
# echo 456 >> 1.txt        


属性3:  i
# chattr -a 1.txt
# chattr +i 1.txt  --加了i属性,此文件不可被修改,不能重命名,不能删除,不能改变内容


总结:文件的权限(mode,permission)为r,w,x,s,t;文件的属性(attributes)为A,a,i等;
 查看当前的umask的值
            umask UMASK值:设置umask的值,且仅对当前shell进程有效
            install:复制文件并设置文件属性
install anaconda-ks.cfg -m 633 anaconda.new :复制anaconda文件为anaconda.new,并设置其权限
             -o:指定属主
             -g:指定属组
             -d:创建目录
小提示: install -d data:创建data目录,类似与mkdir

用户,组,权限