Linux(五)用户管理与文件权限

1 常用的基本命令

Shell可以看作一个命令解释器,为我们提供一个交互式的文本控制台界面,可以通过终端控制台来输入命令,由shell进行解释并最终交给linux内核运行。可以看作用户和硬件的桥梁。

bash:shell使用的工具

1.1 history查看命令历史

history [命令条数]:查看历史命令

history -c:清除历史命令

2 文件目录篇

  • pwd:显示当前的绝对目录,~代表主文件夹/root

pwd是一个shell内置命令,查看帮助文档需要使用help而不能使用man

  • ls:列举当前文件夹的所有内容

    • -a:显示出所有内容,包括隐藏文件和文件夹(以.开头)蓝色表示文件夹

    • -l:长数据串列出,显示文件类型、权限、创建时间等,可以缩写为ll

    • -i:查看文件的索引编号

  • cd :

    • -:跳转到刚才的路径

    • 什么都不敲会回到/root(普通用户为家目录)

  • mkdir:创建文件夹,不允许递归创建

    • -p:递归创建
  • rmdir:目录非空不能删

    • -p:递归删除

    rmdir -p g/h/i 只有当h目录为空才能递归删除

3 文件

  • torch:创建空文件

  • vim:创建文件

    使用vim不能创建空文件

  • cp:复制文件 cp [ ] source dest

    • \cp:当需要覆盖的时候不会产生提示,可以通过alias查看别名列表

    • -r:递归复制

    • -i:交互式,覆盖时会提示

  • rm:删除文件和文件夹

    • -r:递归删除

    • -f:强制删除

  • mv:移动文件 mv [ ] source dest

    • dest为文件名则执行重命名操作
  • cat:查看文件 cat [ ] source

    • -n:显示所有行行号
  • more:分屏查看文件

  • less:动态加载文件

查看日志经常用

  • echo:输出内容到控制台

    • -e:支持\的转义字符表达式

    • $(双击两下table):查看当前环境变量

  • head:查看文件的前面部分,默认为10行

    • -n:指定n行
  • tail:末尾的行数

    • -n:

    • -f:实时追踪文档的所有更新

    相当于开启一个进程实时监控文件更新

    ctrl+s会暂停

    ctrl+q会继续

    使用vim编辑器修改会使索引节点改变,此时相当于换了一个文件因此无法再监控

3.1 输出重定向

>:直接覆盖文件

>>:追加到文件

3.2 软链接 ln

相对的概念硬链接,操作系统中是通过目录项存储指向索引节点 (inode) 的指针实现的,指令为ln [源文件或者目录][软链接名]。而软链接是目录项创建一个链接文件F存储一个源文件的地址

硬链接做删除的时候是互不影响的,删除的只是链接到inode的指针,而软连接一旦原始文件删除则链接文件失效。

文件的链接数指的是硬链接数量。

硬链接只能用于文件的inode链接。实际应用较少。

软链接的创建
ln -s [源文件或者目录][软链接名]

创建之后链接文件会以l开头

而且红色表示链接失败,蓝色代表成功

软链接的删除:

① rm -rf 软链接名 :删除软链接,真实目录的内容不会变

② rm -rf 软链接名 / :会同时删除源文件下面的文件,但不会删除软链接本身

[root@hadoop100 hikaru]# ll
total 0
lrwxrwxrwx. 1 root   root    7 Sep 15 05:18 b -> /root/a
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Desktop
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Documents
drwxr-xr-x. 3 hikaru hikaru 21 Aug 26 00:46 Downloads
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Music
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Pictures
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Public
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Templates
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Videos
[root@hadoop100 hikaru]# rm -rf b/
[root@hadoop100 hikaru]# ls
b  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[root@hadoop100 hikaru]# cd b
[root@hadoop100 b]# ls
[root@hadoop100 b]# 
[root@hadoop100 b]# 
[root@hadoop100 b]# 
[root@hadoop100 b]# 
[root@hadoop100 b]# cd /root/a
[root@hadoop100 a]# ls
[root@hadoop100 a]# 
[root@hadoop100 a]# 
[root@hadoop100 a]# 
[root@hadoop100 a]# 
[root@hadoop100 a]# cd /home/hikaru/
[root@hadoop100 hikaru]# ll
total 0
lrwxrwxrwx. 1 root   root    7 Sep 15 05:18 b -> /root/a
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Desktop
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Documents
drwxr-xr-x. 3 hikaru hikaru 21 Aug 26 00:46 Downloads
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Music
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Pictures
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Public
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Templates
drwxr-xr-x. 2 hikaru hikaru  6 Aug 11 21:11 Videos
对目录使用软链接
ln -s /root/a /home/b

结果:

lrwxrwxrwx.  1 root   root      7 Sep 15 05:07 b -> /root/a
drwx------. 15 hikaru hikaru 4096 Sep 15 05:07 hikaru

这时可以对b执行cd操作,就像cd到root的a下面一样,而且此时执行pwd会:

[root@hadoop100 b]# pwd
/home/b

如果想要排除软链接干扰显示原始路径,应该使用pwd -P

[root@hadoop100 b]# pwd -P
/root/a
跳转到软链接的真实路径 cd -P [软链接名]
[root@hadoop100 home]# pwd
/home
[root@hadoop100 home]# ll
total 4
lrwxrwxrwx.  1 root   root      7 Sep 15 05:07 b -> /root/a
drwx------. 15 hikaru hikaru 4096 Sep 15 05:07 hikaru
[root@hadoop100 home]# cd -P b
[root@hadoop100 a]# pwd
/root/a
[root@hadoop100 a]# cd ..
[root@hadoop100 ~]# pwd
/root

4 时间日期类

4.1 date显示当前日期时间
[root@hadoop100 hikaru]# date
Thu Sep 15 05:32:12 PDT 2022

自定义,如果自定义中有空格则需要变为字符串(加"")

[root@hadoop100 hikaru]# date "+%m-%d %H:%M:%S"
09-15 05:34:33
date -d "+1 days"显示规定的时间
[root@hadoop100 hikaru]# date -d "+1 days"
Fri Sep 16 05:42:54 PDT 2022
date -s "" 设置时间

5 用户管理

多用户、多任务、分时操作系统

5.1 用户添加 useradd
[root@hadoop100 home]# useradd test
[root@hadoop100 home]# ls
hikaru  test

使用user -d [主目录地址] [用户名]可以指定用户主目录

也可以使用mv进行直接改名,但是只是主目录名修改,登录名不会变

5.2 用户密码修改
[root@hadoop100 home]# passwd test
Changing password for user test.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

提示密码不安全,再次输入相同即可

5.3 id [用户名] 查看用户id和组信息
[root@hadoop100 home]# id hikaru
uid=1000(hikaru) gid=1000(hikaru) groups=1000(hikaru)
[root@hadoop100 home]# id test
uid=1001(test) gid=1001(test) groups=1001(test)
[root@hadoop100 home]# id root
uid=0(root) gid=0(root) groups=0(root)
5.4 cat /etc/passwd 查看用户信息
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
chrony:x:992:987::/var/lib/chrony:/sbin/nologin
unbound:x:991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sssd:x:990:984:User for sssd:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:989:983:User for geoclue:/var/lib/geoclue:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
hikaru:x:1000:1000:hikaru:/home/hikaru:/bin/bash
nginx:x:987:980:Nginx web server:/var/lib/nginx:/sbin/nologin
test:x:1001:1001::/home/test:/bin/bash

可以看到有非常多的用户,很多是系统用户,指的是单独创建出来用来运行系统服务的用户。

5.5 su 用户名切换用户身份

su -:切换到root

5.6 sudo临时执行root命令
[root@hadoop100 ~]# cd /root
[root@hadoop100 ~]# 
[root@hadoop100 ~]# 
[root@hadoop100 ~]# ls
a  anaconda-ks.cfg  b  original-ks.cfg
[root@hadoop100 ~]# su hikaru
[hikaru@hadoop100 root]$ ls
ls: cannot open directory .: Permission denied
[hikaru@hadoop100 root]$ sudo ls
[sudo] password for hikaru: 
hikaru is not in the sudoers file.  This incident will be reported.

可以看到用户不在sudoers文件中,需要root指定后,才能执行sudo命令

修改配置文件为

## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL
hikaru    ALL=(ALL)     ALL

再次执行sudo即可

[root@hadoop100 ~]# ls
a  anaconda-ks.cfg  b  original-ks.cfg
[root@hadoop100 ~]# su hikaru
[hikaru@hadoop100 root]$ sudo ls
[sudo] password for hikaru: 
a  anaconda-ks.cfg  b  original-ks.cfg
5.7 userdel [用户名]
[root@hadoop100 home]# userdel test
[root@hadoop100 home]# 
[root@hadoop100 home]# 
[root@hadoop100 home]# ls
hikaru  test
[root@hadoop100 home]# id test
id: test: no such user

可以看到只是删除了用户,但是主目录还存在

6 用户组管理

每个用户都有一个用户组,系统通过对组的管理实现对所有用户的集中管理,不同linux系统对用户组的管理有所不同。

linux在创建用户的时候会自动为其创建同名的组。

用户组的管理涉及到对用户组的添加、删除以及修改,实际上就是对/etc/group文件的更新。

groupadd 新建组
[root@hadoop100 ~]# groupadd monkey
[root@hadoop100 ~]# cat /etc/group
monkey:x:1001:
usermod -g 修改用户的用户组
[root@hadoop100 ~]# usermod -g monkey luffy
[root@hadoop100 ~]# usermod -g monkey zoro
[root@hadoop100 ~]# id luffy
uid=1001(luffy) gid=1001(monkey) groups=1001(monkey)
[root@hadoop100 ~]# id zoro
uid=1002(zoro) gid=1001(monkey) groups=1001(monkey)
groupmod -n 修改组名
[root@hadoop100 ~]# groupmod -n onepiece monkey
[root@hadoop100 ~]# id zoro
uid=1002(zoro) gid=1001(onepiece) groups=1001(onepiece)
[root@hadoop100 ~]# id luffy
uid=1001(luffy) gid=1001(onepiece) groups=1001(onepiece)
groupdel 删除组
[root@hadoop100 ~]# groupdel luffy
[root@hadoop100 ~]# groupdel zoro

特殊的权限组 wheel

在/etc/sudoers文件中有下面这一段,意思即为所有在wheel组下的用户也可以执行所有的命令。

## Allows people in group wheel to run all commands
%wheel	ALL=(ALL)	ALL    NOPASSWD: ALL

并且在后面添加 NOPASSWD: ALL 后,在执行sudo命令的时候不需要输入密码

7 文件属性和权限

7.1 文件属性与文件权限简介

使用ls-l或者ll命令可以查看一个文件的属性以及文件所属的用户和组。

[root@hadoop100 /]# ll /dev
total 0
crw-rw----. 1 root video    10, 175 Nov 11 23:17 agpgart
crw-------. 1 root root     10, 235 Nov 11 23:17 autofs
drwxr-xr-x. 2 root root         140 Nov 11 23:17 block
drwxr-xr-x. 2 root root          80 Nov 11 23:17 bsg
crw-------. 1 root root     10, 234 Nov 11 23:17 btrfs-control
drwxr-xr-x. 3 root root          60 Nov 11 23:17 bus
lrwxrwxrwx. 1 root root           3 Nov 11 23:17 cdrom -> sr0
drwxr-xr-x. 2 root root        3200 Nov 13 21:13 char

第1位 文件类型

主要有d文件夹、l链接文件、-普通文件、b块文件、c字符文件几种

2-4 位 属主权限

即文件所有者的权限

5-7 位 属组权限

即和文件所有者处于同一个组的用户的权限

8-10 位 其他人权限

既不是拥有者也不是同组的用户的权限

r:是否可以读取该文件

w:是否可以修改该文件

x:是否可以执行该文件

可以修改该文件并不代表可以删除该文件,想要删除文件必须拥有文件当前目录的修改权限

拥有目录的读权限才能执行ls命令

拥有目录的执行权限才能执行cd命令

11 位数字:文件的硬链接数或者目录下的子文件数

目录至少含有两个子文件: . 和 ..

测试
[root@hadoop100 ~]# cp anaconda-ks.cfg /home/hikaru/
[root@hadoop100 ~]# su hikaru
[hikaru@hadoop100 root]$ cd ~
[hikaru@hadoop100 ~]$ ls
anaconda-ks.cfg  b  Desktop  Documents  Downloads  Music  Pictures  postfile  Public  Templates  Videos
[hikaru@hadoop100 ~]$ rm -f ./b
[hikaru@hadoop100 ~]$ ls
anaconda-ks.cfg  Desktop  Documents  Downloads  Music  Pictures  postfile  Public  Templates  Videos
[hikaru@hadoop100 ~]$ ll
total 8
-rw-------. 1 root   root   2769 Nov 13 22:11 anaconda-ks.cfg
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Desktop
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Documents
drwxr-xr-x. 3 hikaru hikaru   21 Aug 26 00:46 Downloads
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Music
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Pictures
-rw-r--r--. 1 root   root     13 Nov  5 03:28 postfile
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Public
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Templates
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Videos
[hikaru@hadoop100 ~]$ cat anaconda-ks.cfg 
cat: anaconda-ks.cfg: Permission denied
[hikaru@hadoop100 ~]$ cp anaconda-ks.cfg anaconda-ks.cfg.bk
cp: cannot open ‘anaconda-ks.cfg’ for reading: Permission denied

可以看到上面复制了root目录下的一个配置文件,文件复制之后的文件权限没有发生变化,复制之后仍然不能读取文件

7.2 文件权限的修改 chmod

文件权限的修改要求修改的用户拥有文件目录的修改权限。

第一种方式:chmod [ugoa] [+-=]

第一个选项不填的话则默认修改用户、组其他人的全部权限

第二种方式: chmod 755

r=4, w=2, x=1

其实4 2 1 正好对应各个位置的二进制编码,比如拥有全部的权限,则二进制位为111,1 + 2 + 4 = 7

chmod -R 777 修改文件夹下所有文件的权限
chown
[root@hadoop100 hikaru]# chown hikaru anaconda-ks.cfg 
[root@hadoop100 hikaru]# ll
total 8
-rw-------. 1 hikaru root   2769 Nov 13 22:11 anaconda-ks.cfg
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Desktop
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Documents
drwxr-xr-x. 3 hikaru hikaru   21 Aug 26 00:46 Downloads
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Music
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Pictures
-rw-r--r--. 1 root   root     13 Nov  5 03:28 postfile
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Public
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Templates
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Videos

chogrp 更改文件所属组
[root@hadoop100 hikaru]# chgrp hikaru anaconda-ks.cfg 
[root@hadoop100 hikaru]# ll
total 8
-rw-------. 1 hikaru hikaru 2769 Nov 13 22:11 anaconda-ks.cfg
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Desktop
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Documents
drwxr-xr-x. 3 hikaru hikaru   21 Aug 26 00:46 Downloads
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Music
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Pictures
-rw-r--r--. 1 root   root     13 Nov  5 03:28 postfile
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Public
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Templates
drwxr-xr-x. 2 hikaru hikaru    6 Aug 11 21:11 Videos

posted @ 2022-12-03 09:55  Tod4  阅读(210)  评论(0编辑  收藏  举报