http://c.biancheng.net/view/728.html
用户管理 用户的增删改查,一个用户可以拥有多个组,一个组可以拥有多个用户,一个文件只能拥有一个用户和用户组
增加一个用户 增加新用户,默认会自动创建一个和用户相同的用户组
查看一个用户 1 2 [root@local]# id newuseruid=1001(newuser) gid=1001(newuser) groups=1001(newuser)
删除一个用户 加上-r参数会删除这个用户名,若只是使用userdel命令删除该用户时,并不能删除该用户的所有信息,只是删除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四个文件里的该账户和组的信息。默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)
修改一个用户名 1 2 3 4 5 6 [root@localhost witt]# usermod -l moduser newuser [root@localhost witt]# id newuser id: ‘newuser’: no such user [root@localhost witt]# id moduser uid=1001(moduser) gid=1001(newuser) groups=1001(newuser) [root@localhost witt]#
增加一个用户组 1 2 3 [root@localhost ~]# groupadd newgroup [root@localhost ~]# cat /etc/group grep newgroup newgourp:x:1000:
修改一个用户组 1 2 3 [root@localhost ~]# groupmod -n newgroup1 newgroup [root@localhost ~]# cat /etc/group grep newgroup newgroup1:x:1001:
删除一个用户组 1 2 [root@localhost ~]# groupdel newgroup1 [root@localhost ~]# cat /etc/group grep newgroup
将一个用户加入到用户组 1 2 3 4 5 6 7 8 9 [root@localhost ~]# gpasswd -a newuser1 newgroup1 Adding user newuser1 to group newgroup1 [root@localhost ~]# gpasswd -a newuser2 newgroup1 Adding user newuser2 to group newgroup1 [root@localhost ~]# cat /etc/group grep newgroup newgroup2:x:1001: newgroup1:x:1002:newuser1,newuser2 newgroup3:x:1003: [root@localhost ~]#
将一个用户从组中删除 1 2 3 4 5 6 7 [root@localhost ~]# gpasswd -d newuser2 newgroup1 Removing user newuser2 from group newgroup1 [root@localhost ~]# [root@localhost ~]# cat /etc/group grep newgroup newgroup2:x:1001: newgroup1:x:1002:newuser1 newgroup3:x:1003:
查看一个用户的所属组 1 2 3 4 5 6 root@localhost ~]# cat /etc/group grep newgroup newgroup2:x:1001:newuser1 newgroup1:x:1002:newuser1,newuser2 newgroup3:x:1003: [root@localhost ~]# groups newuser1 newuser1 : newuser1 newgroup2 newgroup1
文件权限 字母简写
对应的单词
u
user
a
all
o
other
g
group
w
write
x
execute
r
read
查看文件权限 1 2 3 4 5 6 7 [root@localhost etc]# ls -al total 1160 drwxr-xr-x. 87 root root 8192 Jul 28 04:39 . dr-xr-xr-x. 17 root root 224 Jul 27 22:34 .. -rw-r--r--. 1 root root 16 Jul 27 22:38 adjtime -rw-r--r--. 1 root root 1529 Mar 14 2021 aliases drwxr-xr-x. 2 root root 143 Jul 27 22:37 alternatives
r w x参考上表说明
d ⽬录
b 块设备 /dev/sda /dev/sda1 /dev/sr0
c 字符设备 /dev/pts/0 /dev/tty0
tty //查看字符设备名称
l symbolic link 符号链接 软链接(快捷⽅式)
s socket 套接字 ⽹络进程间通信的⼀种⽅式
p pipe 管道 本地进程间通信的⼀种⽅
文件权限的增和减 a u o g 参考上表说明
1 2 3 4 5 6 7 # 所有加执行权限 [root@localhost ~]# chmod a+x text.txt # 所有加读权限,其他删执行权限 [root@localhost ~]# chmod a+r,o-x text.txt [root@localhost ~]# ls -al text.txt -rwxr-xr--. 1 root root 0 Jul 28 23:31 text.txt [root@localhost ~]#
文件拥有者和群组的更改 chown -R dir 可以递归目录下的所有文件
1 2 3 4 5 6 7 8 9 10 11 12 # 改拥有者 [root@localhost ~]# chown newuser1 text.txt [root@localhost ~]# ls -al text.txt -rwxr-xr--. 1 newuser1 root 0 Jul 28 23:31 text.txt # 改拥有群组 [root@localhost ~]# chown .newgroup1 text.txt [root@localhost ~]# ls -al text.txt -rwxr-xr--. 1 newuser1 newgroup1 0 Jul 28 23:31 text.txt # 拥有者和群组一起改 [root@localhost ~]# chown newuser2:newgroup2 text.txt [root@localhost ~]# ls -al text.txt -rwxr-xr--. 1 newuser2 newgroup2 0 Jul 28 23:31 text.txt
查看单个命令详细信息和文件数据类型 1 2 3 4 5 [root@localhost ~]# file Firefox-full-latest.exe Firefox-full-latest.exe: PE32 executable (GUI) Intel 80386, for MS Windows [root@localhost ~]# type ls ls is aliased to `ls --color=auto' [root@localhost ~]#
chattr和lsattr命令 文件隐藏属性 1 2 3 4 5 6 7 8 9 [root@qfedu.com ~]# lsattr a.txt [root@qfedu.com ~]# chattr +a a.txt [root@qfedu.com ~]# chattr -a a.txt [root@qfedu.com ~]# chattr +i a.txt [root@qfedu.com ~]# chattr -i a.txt +A:Atime,告诉系统不要修改对这个⽂件的最后访问时间 +S:Sync,⼀旦应⽤程序对这个⽂件执⾏了写操作,使系统⽴刻把修改的结果写到磁盘。 +d:No dump,在进⾏⽂件系统备份时,dump程序将忽略这个⽂件。 chattr命令不能保护/、/dev、/tmp、/var⽬录
chattr命令选项 -R 递归地作用于所有子目录及文件(默认不递归)。 -V 将chattr命令的输出变得详细些,并且会打印出chattr命令的版本。 -f 不打印错误信息。 -v version 给文件设置一个版本号。
命令用法 命令格式如下:
1 chattr [ -RVf ] [ -v version ] [ mode ] files…
即,对文件’files’设置为属性’mode’。其中mode可以设置为 “+-=[acdeijstuADST]” 。 例如:
1 [jc_gbd@ubuntu]test:$ sudo chattr +a main.c
上述mode中:
‘+’ 表示在文件的现有属性上增加后面的属性。
‘-’ 表示在文件的现有属性上删除后面属性。
‘=’ 不管原有属性,直接设置为后面的属性。
相关的可改变的属性详细说明:
‘A’ 文件的atime(access time)记录不可被修改。
‘a’ 将文件设置为append-only-file,即只可向文件追加内容,而不能覆盖和删除。只有特权用户或者拥有CAP_LINUX_IMMUTABLE的普通用户可以设置这个属性。
‘c’ 文件会自动在内核中压缩后存储。读取文件操作会得到未压缩的数据,而写入文件操作会先把数据压缩再存到磁盘中。
‘D’ 有这个属性的目录被修改时,其更改会同步写到磁盘上。相当于mount命令的dirsync选项。
‘d’ 文件不会成为dump程序的备份目标。
‘e’ 文件使用extents来映射磁盘上的块。chattr可能无法删除这个属性。
‘i’ 文件不能被修改,包括写入、删除、重命名和建立符号链接等。只有特权用户或者拥有CAP_LINUX_IMMUTABLE的普通用户可以设置这个属性。
‘j’ 对于日志文件系统ext3,如果挂载时使用”data=ordered”或者”data=writeback”选项,’j’属性会增加”data=journal”的作用,即,向文件写入的新数据会先写到日志,再写到文件里。如果挂载时本来就使用了”data=journal”,则’j’没有作用。只有特权用户或者拥有CAP_LINUX_IMMUTABLE的普通用户可以设置这个属性。
’s’ 当文件被删除时,它占用的block会被清零并回收,即完全删除,保护你的隐私。
‘S’ 当文件被修改时,修改会同时写到磁盘。相当于mount时的sync选项。
‘T’ 设置该属性的目录,会被认为是Orlov block allocator机制的顶层目录,它告诉ext3/ext4,它的各个子目录是没有关系的,在为子目录分配磁盘块时也应尽量分离来。而在没有设置该属性的目录下,子目录通常会分配相近的块。该属性很适用于设置到/home目录,来隔离各用户文件夹。
‘t’ 文件在于其他文件合并(tail-merging)时,不会产生尾部块碎片。
‘u’ 文件在被删除后,其内容仍被保存,允许用于请求数据恢复。
另外,还有一些文件固有或只读的属性,chattr无法更改,但仍可以通过lsattr命令查看到
SUDO 提权 1 2 3 4 5 6 7 8 9 [root@qfedu.com ~]# visudo # 别名的定义 Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool 开放个别命令使⽤权: huxulong ALL=/usr/bin/passwd, /bin/cat, NETWORKING 开放所有命令使⽤权: huxulong ALL=(ALL) ALL
权限掩码 unmask 1 2 3 4 5 6 7 8 查看umask [root@qfedu.com ~]#umask 0022 root账户默认 0002 普通⽤户默认 修改umask [root@qfedu.com ~]#umask 0111 计算⽅法: 先把掩码做取反操作,然后在与原始权限做与运算