Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300064
  • 博文数量: 84
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 16:46
文章分类

全部博文(84)

文章存档

2017年(2)

2016年(4)

2015年(78)

我的朋友

分类: LINUX

2015-06-26 08:22:15

chgrp:改变文件所属组
chown:改变文件所有者
chmod:改名文件的权限,suid、sgid、sbit等等特性
sgid
suid
sbit

umask:文件默认权限
useradd:新增用户
userdel:删除用户
usermod:调整用户参数
groupadd:新增用户组
groupdel:删除用户组
groupmod:调整用户组参数
groups:
newgrp:
gpasswd:用户组管理员功能

几个一般身份用户常用的账号数据修改与查询命令
finger:查阅用户相关信息
cnfn:有点像change finger的意思,修改用户相关信息
chsh:change shell,修改用户shell相关信息
id:查询某人或自己的相关UID/GID等信息

账号管理
  用户添加

  1. useradd <新建用户名>
  2. useradd <新建用户名> -u #创建用户时指定UID
  3. useradd <新建用户名> -g #创建一个用户指定其初始组
  4. useradd <新建用户名> -G #创建的用户还可以加入的组(组必须存在)
  5. useradd <新建用户名> -d /dir/dir #创建用户并指定某个目录成为其家目录,而不要使用默认值,目录必须是绝对路径
  6. useradd <新建用户名> -s /bin/bash or /bin/nologin#给新建的用户指定一个shell默认是/bin/bash
  7. 示例
    useradd awake -u 1333 -g awakegroup -s /bin/nologin -d /home/public -G admingroup
    创建一个用户名为awake的用户其UID为1333,他的初始组是awakegroup(必须之前存在),无法使用shell登陆,指定的家目录路径是/home/public(之前不存在),附属组是admingroup(必须之前存在)
用户调整
  1. usermod <存在用户名> -u #更改用户的UID
  2. usermod <存在用户名> -s #更改用户的shell
  3. usermod <存在用户名> -g <存在的组名> #更改用户的初始组
  4. usermod <存在用户名> -G <存在的组名> #更改用户的附属组
  5. usermod <存在用户名> -L #冻结用户
  6. usermod <存在用户名> -U #解冻用户
用户删除
  1. userdel -r <存在用户名> #连同用户的家目录一起删除,不携带参数-r将不删除用户家目录,所以你删除用户时一定要小心,因为他会删除目录的,一定要将用户有用的家目录文件备份。
验证用户信息
  1. id #查询用户的id信息,包括他的UID/GID等等
设置用户密码
  1. passwd [username]    #设置用户密码,如果设置root用户密码,直接输入passwd回车即可;
  2. echo "abc543CC" | passwd --stdin awake #:使用 standard input 设置用户的密码,适合批量
组添加
  1. groupadd <新建用户组>    #新建用户组
  2. groupadd <新建用户组> -g #新建用户组并指定GID
组调整
  1. groupmod <存在用户组> -g         #更改用户组的GID,但建议不要随意改动GID,容易造成系统资源的错乱。
  2. groupmod <存在用户组> -n <新组名> #更改既有用户组的组名
组删除
  1. groupdel <组名称> #删除组,如果有用户的初始组的名称就是你要删除的组名称,你将不能删除,必须首先删除这个用户,或改变这个用户的GID后方可删除;
调整属主
  1. chown <存在用户名> <文件或目录> #将单独的文件或目录改所有者
  2. chown <存在用户组> -R <目录> #一般用在目录,是将目录和其下的所有档案改所有者

  3. chown Examples:
  4.   chown root /u Change the owner of /u to "root". #将目录/u的拥有者改为root
  5.   chown root:staff /u Likewise, but also change its group to "staff". #将目录/u的拥有者和组分别改为root和staff
  6.   chown -hR root /u Change the owner of /u and subfiles to "root". #将目录/u和其下的所有文件拥有者改为root,符号链接文件一并改掉的意思
调整属组
  1. chgrp <存在用户组> <文件或目录> #将单独的文件或目录改组
  2. chgrp <存在用户组> -R <目录> #一般用在目录,是将目录和其下的所有档案改组
  3. chgrp Examples:
      chgrp staff /u      Change the group of /u to "staff".                 #将目录/u的所属组改为staff
      chgrp -hR staff /u  Change the group of /u and subfiles to "staff".    #将目录/u和其下的所有文件的所属组改为staff
SUID 
  1. SUID权限仅对二进制程序(binary program)有效;
  2.  执行者对于该程序需要具有 x 的可执行权限;
  3.  本权限仅在执行该程序的过程中有效 (run-time);
  4.  执行者将具有该程序拥有者 (owner) 的权限。
  5.  SUID仅可用在 binary program 上, 不能够用在 shell script 上面,SUID 对于目录也是无效的
SGID
  1. SGID 对二进制程序有用;
  2.  程序执行者对于该程序来说,需具备 x 的权限;
  3.  除了 binary program 之外,事实上 SGID 也能够用在目录上当一个目录设定了 SGID 的权限后,他将具有如下功能:
  4.   用户若对于此目录具有 r 于 x 的权限时,该用户能够进入此目录;
  5.   用户在此目录下的有效群组(effective group)将会变成该目弽的群组;
  6.   用途:若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组于此目录的群组相同。
SBIT
  1. 当用户对于此目录具有w,x权限,亦即具有写入的权限时;
  2. 当用户在该目录下建立档案或目录时,仅有自己于root才有权力删除该档案,例如/tmp目录,/var/tmp目录

chmod :改变档案的权限, SUID, SGID, SBIT 等等的特性,有两种方式:数字类型改变档案权限和符号类型改变档案权限
数字设定法
chmod -R 777 <目录或文件>
符号设定法

  1. chmod [-R] u+w <目录或文件>        #增加目录或文件的所有者w权限
  2. chmod [-R] u+rwx,g+rx <目录或文件> #增加目录或文件的所有者rwx权限,所属组增加rx权限
  3. chmod [-R] a+x <目录或文件>        #增加目录或文件ugo的所有权限x
  4. 其中SUID为u+s,而SGID为g+s,SBIT则是o+t,或者 chmod 4xxx;chmod 2xxx;chmod 1xxx
ACL
  1. 以/file目录为例,如果权限是777,表示file目录的所有者可以rwx,文件的所有者一般使用chown改变,但你会看到一个文件往往只能属于一个用户,如果你要让其他某一个用户也能够rwx这个目录,那么需要操作的就是group和other了,要么你需要将这个用户也家到这个文件显示的组中,要么other就要设置成rwx,将other设置成rwx,这样显然不安全,那么就要用到acl了也就是setfacl这个命令了。也就是setfacl这个命令颗粒度更加细,他表示即使不是文件的onwer、group和other也能够对文件进行操作。
  2. getfacl -m u:user:rwx file
  3. getfacl -m g:group:rwx file
  4. getfacl -R -m u:user:rwx file



桌面设置terminal的快捷方式不会
图形桌面右上角,时间设置,和网络配置使用不了

文件权限与目录配置
/etc/passwd  #默认情况下,所有的系统上的账号都记录在这个文件内
/etc/shadow  #个人密码记录在这个文件中
/etc/group   #所有的组名记录在这个文件中

若有一个档案的类型不权限数据为『-rwxr-xr--』,请说明其意义为何?
答:
先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:
[-][rwx][r-x][r--]
 1  234  567  890
1 为:代表这个文件名为目彔戒档案,本例中为档案(-);
234 为:拥有者的权限,本例中为可读、可写、可执行(rwx);
567 为:同群组用户权力,本例中为可读可执行(rx);
890 为:其他用户权力,本例中为可读(r)
同时注意到,rwx 所在的位置是丌会改变的,有该权限就会显示字符,没有该权限就变成减
号(-)就是了。

第一个字符代表这个档案是『目录、档案或链接文件等等』
当为[ d ]则是目彔
当为[ - ]则是档案
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口讴备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口讴备,例如键盘、鼠标(一次性读取装置)。

学习一下ssh -X root@1.1.1.1 可以通过ssh -X命令连接到对端主机(必须也是由图形界面的机器),可以运行一个对端机器的图形界面程序,来调试对端机器。


例题1:
假讴 test1, test2, test3 同属于testgroup 这个群组,如果有下面的两个档案,请说明两个档案的拥有者与其相关的权限为何?
-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai
答:
档案 test.txt的拥有者为root,所属群组为root。至于权限方面则只有root 这个账号可以存取此档案,其他人则仅能读此档案;
另一个档案 ping_tsai 的拥有者为 test1,而所属群组为 testgroup。其中:test1可以针对此档案具有可读可写可执行的权力;
而同群组的 test2, test3 两个人与test1同样是 testgroup 的群组账号,则仅可读可执行但不能写(亦即不能修改);
至于非 testgoup 这一个群组的人则仅可以读,不能写也不能执行!


例题2:
如果我的目录为底下的样式,请问testgroup这个群组的成员与其他人(others)是否可以进入本目彔?
drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
答:
档案拥有者test1[rwx]可以在本目录中进行任何工作;
而 testgroup 这个群组[r-x]的账号,例如 test2, test3 亦可以进入本目录迚行工作,但是不能在本目录下进行写入的动作;
至于other 的权限中[r--]虽然有r,但是由与没有x的权限,因此others 的使用者,并不能进入此目录!

例题3:
如果你有一个软件开发团队,在你的团队中,你希服每个人都可以使用某一些目彔下的档案, 而非你的团队的其他人则不予以开放?以上面的例子来说,testgroup 的团队共有三个人,分别是 test1, test2, test3,那举我就可以将团队所需的档案权限订为[ -rwxrwx--- ]来提供给 testgroup 的工作团队使用!

chgrp        #改变档案所属群组
chown        #改变档案拥有者
chmod        #改变档案的权限,suid、sgid、sbit等等特性


 

 
chmod [-R] xyz 文件或目录,xyz为数字(7,5,1)
 
chgrp、chown、chmod、cp -a(相当于cp -dR)、都有-R的参数都是递归的意思;
 如:chgrap -R adminuser /home/admins #将目录/home/admins和其下的所有文件的所属组都改为adminuser
          chown -hr adminuser /home/admins
          chmod -R 770 /home/admins
           
 
 
5、按要求创建用户组及多个用户,设置用户的候选组,设置用户的默认shell
 创建组adminuser
 创建用户natasha和harry属于改组(改组为他们的第二个组)备选组
 创建sarah,不属于adminuser,没有交互的shell
 他们的密码都是tianyun
 答:
 groupadd adminuser
 useradd natasha -G adminuser
 useradd harry -G adminuser
 useradd sarah -s /sbin/nologin
 
 echo tianyun | passwd --stdin natasha
 echo tianyun | passwd --stdin harry
 echo tianyun | passwd --stdin sarah
 或者
 passwd natasha
 passwd harry
 passwd sarah
 验证
 id natasha
 id harry
 id sarah
 
6、按要求设置文件及目录权限,会用到文件acl权限。
拷贝/etc/fstab到/var/tmp/fstab,属主和属组为root:
任何人都不能执行;
natasha能读写
harry没有任何权限;
其他和将来的用户能够读
答:
[root@localhost tmp]# cp -rf /etc/fstab /var/tmp/fstab   #携带权限拷贝
[root@localhost tmp]# ll /var/tmp/fstab
-rw-r--r--. 1 root root 465 May 16 16:24 /var/tmp/fstab  #默认就是任何人不能执行
[root@localhost tmp]# getfacl /var/tmp/fstab
getfacl: Removing leading '/' from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-   #属主可以读写
group::r--  #属组可以读
other::r--  #其他用户或组可以读
[root@localhost tmp]# setfacl -m u:natasha:rw /var/tmp/fstab   #-m参数表示modify,u表示用户【命令格式setfacl -m u:lisa:r file】
[root@localhost tmp]# getfacl /var/tmp/fstab
getfacl: Removing leading '/' from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-    #增加了natasha用户可以读写
group::r--
mask::rw-
other::r--

[root@localhost tmp]#
[root@localhost tmp]# setfacl -m u:harry:- /var/tmp/fstab
[root@localhost tmp]# getfacl /var/tmp/fstab
getfacl: Removing leading '/' from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:harry:---    #增加了harry用户没有任何权限
user:natasha:rw-   
group::r--
mask::rw-
other::r--

8、设置目录权限
创建共享目录/home/admins;
属组为adminuser;
adminuser组成员对目录有读写和执行权限,其他所有用户没有任何权限(root除外)
在/home/admins目录中创建的文件,会自动继承adminuser组
答:
[root@localhost home]# mkdir admins                                               #创建共享目录/home/admins;
[root@localhost home]# chgrp adminuser /home/admins/                #属组为adminuser;
[root@localhost home]# ll
drwxr-xr-x.  2 root    adminuser    6 May 16 16:48 admins
[root@localhost home]# chmod 770 /home/admins/                            #adminuser组成员对目录有读写和执行权限        
[root@localhost home]# ll
drwxrwx---.  2 root    adminuser    6 May 16 16:48 admins

[root@localhost admins]# touch 321                                                  #现在创建的文件321,没有继承adminuser组的权限
[root@localhost admins]# ll
total 0
-rw-r--r--. 1 root root 0 May 16 16:55 321


[root@localhost admins]# chmod g+s /home/admins/                        #在/home/admins目录中创建的文件,会自动继承adminuser组
[root@localhost admins]# ll -d /home/admins/
drwxrws---. 2 root adminuser 16 May 16 16:55 /home/admins/
[root@localhost admins]# ll
total 0
-rw-r--r--. 1 root root 0 May 16 16:55 321
[root@localhost admins]# touch file                                                    #现在创建的文件file,拥有了adminuser组的权限,这就是chmod g+s的功能
[root@localhost admins]# ll
total 0
-rw-r--r--. 1 root root      0 May 16 16:55 321
-rw-r--r--. 1 root adminuser 0 May 16 16:58 file
[root@localhost admins]#

chmod u+s /home/admins/可执行文件  #对应suid权限,当一个可执行文件一旦被设置为suid权限后,当任何人去执行这个文件时,将以文件属主的身份去执行,
chmod g+s /home/admins/通常为目录     #对应sgid权限,通常针对目录,如果一个目录设置了sgid权限,在这个目录下创建的文件其属组会被继承。
chmod o+t /home/admins/通常为目录     #对应sticky权限,通常针对目录,如果一个目录设置了sticky权限,在其下创建的目录或文件只有其所有者和文件夹的所有者可以删除


13题
创建用户jack,指定uid为2000,密码为jack
useradd jack -u 2000
echo tianyun | passwd --stdin jack

15题
查找属于用户jack的所有文件,并将其拷贝到/findfiles
解法:
/findfiles这个目录需要提前手工创建
find / -user jack -exec cp -a {} /findfiles \;

一些特殊的查找命令也需要掌握,例如查找特殊权限的文件,查找特殊时间的文件

16题:在/usr/share/dict/words中查找到所有包含字符串seismic的行,将找出的行按照原文的先后顺序拷贝到/root/filelist文件中。/root/filelist文件不要包含空行
grep seismic /usr/share/dict/words > /root/filelist

如果要求你追加使用
grep seismic /usr/share/dict/words > /root/filelist

17题:将/etc/目录归档并压缩到/root/backup.tar.bz2,使用bzip2压缩
答:
 tar -cvjf /root/backup.tar.bz2 /etc    #注意f参数后面必须跟目标文件(是生成或者是解压的文件)

其他:需要掌握tar命令的使用,如压缩成gzip文件,tar -cvzf /root/backup.tar.bz2 /etc




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

上一篇:/etc/passwd文件结构

下一篇:chgrp命令

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