文件权限管理上

 

1、文件系统
  文件的两部分:元数据+内容数据
  文件系统是什么?
  文件系统是操作系统的一部分,是用来控制硬盘的一种程序。

  每个硬盘分区都要有一个文件系统
    硬盘分区相当于在打隔断,分割出一个个小的空间。
    文件系统相当于对一个个小的空间做装修,做装修的意思是负责把空间的数据组织好,组织成简单的功能给人用。

  文件系统组织好后带来的方便之处:
  使用者------>block(是操作系统中的文件系统读写硬盘的单位)对应n个扇区(硬盘的读写单位)。

  文件由两部分组成:
  元数据:文件的权限、属主、数组....。对应的硬盘当中的一个叫innode block块
  ls -l /etc/passwd ls -l看到的结果
  -rw-r--r--. 1 root root 959 May 9 04:14 /etc/passwd

  内容数据:真正的文件内容,对应的就是硬盘当中的数据块:data block
  cat命令看到的内容。

  用户创键新文件(touch a.txt)时文件系统为其分配空闲区,而在用户删除或修改某个文件回收或调整内存。

  以文件系统来讲,它里面组织的就是一堆block块,block块再往下管理硬盘,文件系统中只有一个超级block块,记录此filesystem的整体信息,包括innode blockdata block的总量、使用量、剩余量以及整个文件系统的格式与相关信息。一个文件系统里有多少个block块就看用户创建了多少个文件。
  只针对一个来讲innode块只有一个,但data block可能有许多个,看文件的内容的大小。

  

  df----> diskfilesystem

  /dev 设备
  /dev/sda1 s是硬盘接口d是disk的意思a代表的是第一块硬盘1是第一个分区。
  站在操作系统的角度看每一个分区都会关联一个文件系统。所以/dev/sda1 分区就看做是一个文件系统。

  

  df -T  查看文件系统(分区)类型

        

   df -h 空间带着单位

        

   df -i   查看innode号的使用量

        

  

硬盘满分两种情况:
  假设硬盘空间10个G
  1、存了1千万空文件---->innode号耗尽
  2、只存一个文件,但这个文件内容有12G---->磁盘空间耗尽。

 

补充:

  for循环

[root@localhost ~]# for((i=1;i<=300;i++)){touch $i.txt;}

  watch动态监控某个命令的结果  -n 1每一秒

watch -n 1 "df -i |grep sda1"

结合之前所学的知识来个需求:取sda分区的innode利用率

[root@localhost ~]# df -i
文件系统         Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs        121779     374  121405       1% /dev
tmpfs           124459       1  124458       1% /dev/shm
tmpfs           124459     711  123748       1% /run
tmpfs           124459      16  124443       1% /sys/fs/cgroup
/dev/sda3      9180672   32057 9148615       1% /
/dev/sda1       256000     326  255674       1% /boot
tmpfs           124459       1  124458       1% /run/user/0
[root@localhost ~]# df | awk '/sda3/{print$(NF-1)}'
9%
View Code

 如果只取数字:

df | awk '/sda3/{print$(NF-1)}'|cut -d'%' -f1

 

 

查看一个文件内容的底层流程: 

[root@localhost ~]# 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
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
查看/etc/passwd文件内容

Linux系统中一切皆文件。
文件夹本身也是一种文件:
  元数据:权限、属主、属组...。------>inode block块
  内容数据:存的该文件夹包含的------>data block块
    子文件名------>inode的编号
    子文件夹名------>inode的编号  

[root@localhost ~]# ls -l /
总用量 24
lrwxrwxrwx.   1 root root    7 5月  11 05:40 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 5月  11 05:43 boot
drwxr-xr-x.  19 root root 3180 5月  19 15:25 dev
-rw-r--r--.   1 root root   19 5月  11 05:54 et
drwxr-xr-x.  74 root root 8192 5月  19 15:27 etc
drwxr-xr-x.   2 root root    6 4月  11 2018 home
lrwxrwxrwx.   1 root root    7 5月  11 05:40 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 5月  11 05:40 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 4月  11 2018 media
drwxr-xr-x.   2 root root    6 4月  11 2018 mnt
drwxr-xr-x.   2 root root    6 4月  11 2018 opt
dr-xr-xr-x. 107 root root    0 5月  19 15:25 proc
dr-xr-x---.   2 root root  135 5月  13 15:38 root
drwxr-xr-x.  24 root root  680 5月  19 15:27 run
lrwxrwxrwx.   1 root root    8 5月  11 05:40 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 4月  11 2018 srv
dr-xr-xr-x.  13 root root    0 5月  19 15:25 sys
drwxr-xr-x.   2 root root   24 5月  18 01:12 test
drwxrwxrwt.  28 root root 4096 5月  19 16:48 tmp
drwxr-xr-x.  13 root root  155 5月  11 05:40 usr
drwxr-xr-x.  19 root root  267 5月  11 05:44 var
ls -l查看文件夹的元数据
[root@localhost ~]# ls -d /
/
[root@localhost ~]# ll -d /
dr-xr-xr-x. 18 root root 246 5月  18 00:50 /
查看文件夹的元数据
[root@localhost ~]# ls /
bin   dev  etc   lib    media  opt   root  sbin  sys   tmp  var
boot  et   home  lib64  mnt    proc  run   srv   test  usr
查看文件夹下的内容

针对文件夹(目录)这种文件要看它的内容就用ls命令。

查看目录或者文件信息
在系统管理是,经常需要列出(list)某个目录下有哪些文件、目录,以及这些文件、目录的详细信息。可以通过ls命令病配合相关的选项来实现。

ls [选项] [目录或文件]

以下是常用选项说明。

-a  显示当前目录下的所有文件和目录。
-A  显示所有文件和目录,但不显示当前目录”.”和上层目录”..”。
-d  显示目录本身而不是目录下的内容。
-l  使用详细格式列表,显示类型、权限、所属用户、组等信息。
-c  以更改时间进行排序后显示文件和目录。
-s  显示文件和目录的大小,以block为单位。

查看根目录下所有的目录和文件。
ls /

[root@localhost ~]# ls /
bin   dev  etc   lib    media  opt   root  sbin  sys   tmp  var
boot  et   home  lib64  mnt    proc  run   srv   test  usr

查看/etc/httpd目录下所有目录与文件的详细信息
ls -al /etc/httpd


ls -l在Linux下定义了别名,可以写作ll
例如 ll /etc/httpd  等同于  ls -l /etc/httpd
ls [选项] [目录或文件]

针对普通文件内容可以用cat命令。

[root@localhost ~]# ll -di /
64 dr-xr-xr-x. 18 root root 246 5月  18 00:50 /
查看根文件夹的innode号

 cat查看文件(passwd)的内容:

cat /etc/passwd
从头开始找,肯定在哪个路径下面
先从根(/)提取数据,每一种文件都有自己的inode号,先从inode读出元数据来,然后根据元数据找打data block模块。

 

硬链接、软链接
  硬链接:两个文件名(目标文件和源文件)指向同一个inode号(硬盘上的同一块存储空间)。
  ln file1 file2
  特点:
    1、改动一个文件元数据或内容,另外一个文件也跟着变
    2、删除源文件,仅仅只是解除了源文件名与inode号的关联关系,所以不会影响目标文件
    3、硬链接无法跨分区。


软链接:目标文件指向的是源文件的文件名。
  特点:
    1、改动一个文件内容,另外一个也跟着变。改元数据的话彼此不会影响。
    2、删除源文件,目标文件不可用。
    3、软链接可以跨分区。
    4、可以对目录做软链接。

 对a.txt文件建立名为b.txt的软链接,如果不加选项则默认建立硬链接。

ln -s /a.txt /b.txt

ln 命令用来创键链接(link)。只能对文件进行硬链接,目录不可以创键硬链接。

-s 选项表示对源文件建立软链接,而非硬链接。

/a.txt 源文件或目录。

/b.txt 链接名称。

 

 

 

2、用户、组管理

  什么是用户、什么是组?
    如果把整个系统当成一家公司
    用户指的就是一个个员工
    超级管理员就是所有员工里的老板
    组指的就是部门

  为何要有用户?组?
    为了划分权限
    具体来说分成三大类:
      u User指的是该文件归属的主人,简称属主。
      g Group指的是该文件归属的组,简称属组。
      o Others不是u也不是g里的人员,统称为其他人,简称o。

    程序本身就是代码文件,程序运行起来就是进程,每个进程都是以某个身份启动起来的。 

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 128024  6576 ?        Ss   5月19   0:01 /usr/lib/systemd/systemd --switched-root
root          2  0.0  0.0      0     0 ?        S    5月19   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   5月19   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    5月19   0:01 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    5月19   0:01 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    5月19   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    5月19   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    5月19   0:04 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   5月19   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    5月19   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    5月19   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   5月19   0:00 [netns]
root         15  0.0  0.0      0     0 ?        S    5月19   0:00 [khungtaskd]
root         16  0.0  0.0      0     0 ?        S<   5月19   0:00 [writeback]
root         17  0.0  0.0      0     0 ?        S<   5月19   0:00 [kintegrityd]
root         18  0.0  0.0      0     0 ?        S<   5月19   0:00 [bioset]
root         19  0.0  0.0      0     0 ?        S<   5月19   0:00 [bioset]
root         20  0.0  0.0      0     0 ?        S<   5月19   0:00 [bioset]
root         21  0.0  0.0      0     0 ?        S<   5月19   0:00 [kblockd]
root         22  0.0  0.0      0     0 ?        S<   5月19   0:00 [md]
root         23  0.0  0.0      0     0 ?        S<   5月19   0:00 [edac-poller]
root         24  0.0  0.0      0     0 ?        S<   5月19   0:00 [watchdogd]
root         30  0.0  0.0      0     0 ?        S    5月19   0:00 [kswapd0]
root         31  0.0  0.0      0     0 ?        SN   5月19   0:00 [ksmd]
root         32  0.0  0.0      0     0 ?        SN   5月19   0:00 [khugepaged]
root         33  0.0  0.0      0     0 ?        S<   5月19   0:00 [crypto]
root         41  0.0  0.0      0     0 ?        S<   5月19   0:00 [kthrotld]
root         42  0.0  0.0      0     0 ?        S    5月19   0:01 [kworker/u256:1]
root         43  0.0  0.0      0     0 ?        S<   5月19   0:00 [kmpath_rdacd]
root         44  0.0  0.0      0     0 ?        S<   5月19   0:00 [kaluad]
root         45  0.0  0.0      0     0 ?        S<   5月19   0:00 [kpsmoused]
root         47  0.0  0.0      0     0 ?        S<   5月19   0:00 [ipv6_addrconf]
root         60  0.0  0.0      0     0 ?        S<   5月19   0:00 [deferwq]
root         97  0.0  0.0      0     0 ?        S    5月19   0:00 [kauditd]
root        234  0.0  0.0      0     0 ?        S<   5月19   0:00 [ata_sff]
root        237  0.0  0.0      0     0 ?        S<   5月19   0:00 [mpt_poll_0]
root        239  0.0  0.0      0     0 ?        S<   5月19   0:00 [nfit]
root        241  0.0  0.0      0     0 ?        S<   5月19   0:00 [mpt/0]
root        246  0.0  0.0      0     0 ?        S    5月19   0:00 [scsi_eh_0]
root        247  0.0  0.0      0     0 ?        S<   5月19   0:00 [scsi_tmf_0]
root        248  0.0  0.0      0     0 ?        S    5月19   0:00 [scsi_eh_1]
root        250  0.0  0.0      0     0 ?        S<   5月19   0:00 [scsi_tmf_1]
root        252  0.0  0.0      0     0 ?        S    5月19   0:00 [scsi_eh_2]
root        254  0.0  0.0      0     0 ?        S<   5月19   0:00 [scsi_tmf_2]
root        257  0.0  0.0      0     0 ?        S    5月19   0:00 [irq/16-vmwgfx]
root        259  0.0  0.0      0     0 ?        S<   5月19   0:00 [ttm_swap]
root        277  0.0  0.0      0     0 ?        S<   5月19   0:00 [bioset]
root        278  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfsalloc]
root        279  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs_mru_cache]
root        280  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-buf/sda3]
root        281  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-data/sda3]
root        282  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-conv/sda3]
root        283  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-cil/sda3]
root        284  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-reclaim/sda]
root        285  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-log/sda3]
root        286  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-eofblocks/s]
root        287  0.0  0.0      0     0 ?        S    5月19   0:38 [xfsaild/sda3]
root        288  0.0  0.0      0     0 ?        S<   5月19   0:00 [kworker/0:1H]
root        365  0.0  0.3  37088  3384 ?        Ss   5月19   0:00 /usr/lib/systemd/systemd-journald
root        394  0.0  0.5  48896  5404 ?        Ss   5月19   0:00 /usr/lib/systemd/systemd-udevd
root        440  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-buf/sda1]
root        443  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-data/sda1]
root        445  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-conv/sda1]
root        447  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-cil/sda1]
root        451  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-reclaim/sda]
root        452  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-log/sda1]
root        453  0.0  0.0      0     0 ?        S<   5月19   0:00 [xfs-eofblocks/s]
root        455  0.0  0.0      0     0 ?        S    5月19   0:00 [xfsaild/sda1]
root        501  0.0  0.0  55532   856 ?        S<sl 5月19   0:00 /sbin/auditd
polkitd     524  0.0  1.5 613000 14988 ?        Ssl  5月19   0:00 /usr/lib/polkit-1/polkitd --no-debug
root        526  0.0  0.5 168304  5156 ?        Ss   5月19   0:00 /usr/bin/VGAuthService -s
root        527  0.1  0.4 273196  4812 ?        Ssl  5月19   1:47 /usr/bin/vmtoolsd
dbus        530  0.0  0.2  66448  2584 ?        Ssl  5月19   0:00 /usr/bin/dbus-daemon --system --address=
chrony      534  0.0  0.1 117808  1844 ?        S    5月19   0:00 /usr/sbin/chronyd
root        548  0.0  0.1  26484  1784 ?        Ss   5月19   0:00 /usr/lib/systemd/systemd-logind
root        556  0.0  0.1 126388  1680 ?        Ss   5月19   0:00 /usr/sbin/crond -n
root        561  0.0  0.2  96572  2444 ?        Ss   5月19   0:00 login -- root
root        567  0.0  2.9 359024 29732 ?        Ssl  5月19   0:00 /usr/bin/python2 -Es /usr/sbin/firewalld
root        602  0.0  1.1 765800 11404 ?        Ssl  5月19   0:03 /usr/sbin/NetworkManager --no-daemon
root        860  0.0  1.7 574280 17452 ?        Ssl  5月19   0:12 /usr/bin/python2 -Es /usr/sbin/tuned -l 
root        861  0.0  0.4 112900  4304 ?        Ss   5月19   0:00 /usr/sbin/sshd -D
root        862  0.0  0.4 214432  4256 ?        Ssl  5月19   0:06 /usr/sbin/rsyslogd -n
root       1025  0.0  0.2  89708  2204 ?        Ss   5月19   0:00 /usr/libexec/postfix/master -w
postfix    1033  0.0  0.4  89880  4072 ?        S    5月19   0:00 qmgr -l -t unix -u
root       1114  0.0  0.2 115540  2088 tty1     Ss+  5月19   0:00 -bash
root       1152  0.0  0.5 102904  5476 ?        S    5月19   0:00 /sbin/dhclient -d -q -sf /usr/libexec/nm
root       1220  0.0  0.5 158904  5596 ?        Ss   5月19   0:00 sshd: root@pts/0
root       1224  0.0  0.2 115544  2036 pts/0    Ss   5月19   0:00 -bash
root       2355  0.0  0.0      0     0 ?        R    04:01   0:20 [kworker/0:1]
postfix    3073  0.0  0.4  89812  4052 ?        S    13:05   0:00 pickup -l -t unix -u
root       3080  0.0  0.0      0     0 ?        S    13:15   0:00 [kworker/0:2]
root       3083  0.0  0.0      0     0 ?        S    13:20   0:00 [kworker/0:0]
root       3084  0.0  0.0      0     0 ?        S    13:23   0:00 [kworker/0:3]
root       3085  0.0  0.1 155448  1852 pts/0    R+   13:23   0:00 ps aux
ps aux 查看进程第一列就是当前进程的用户身份

       当要操作某个文件时,进程会以启动时候的那个身份去依次匹配:

        1、先看root这个身份是不是这个文件的主人,对上主人了,权限就是主人的权限。
        2、如果没有对上主人,看一看这个进程的身份是不是这个文件的属组里面的成员,如果是这个组里的成员就有这个属组的权限了。
        3、如果也不是组里的成员那就其他人的权限。

      敲命令也是在启动进程,该进程的身份是谁?
        1、进程如果没有做过任何配置就以默认身份即当前登录的用户身份。
        2、可以对程序进行配置,指定其以什么身份启动。

 

  如何管理用户、组

    用户的增删改查

在命令行模式下,添加用户主要使用useradd命令来实现。

useradd 命令的格式如下:  

[root@localhost ~]# useradd [选项] <用户名>

  增加用户id查看用户信息,如果不加用户名默认查看的是当前登录的用户。

[root@localhost ~]# useradd zhangrenguo
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id zhangrenguo
uid=1000(zhangrenguo) gid=1000(zhangrenguo) 组=1000(zhangrenguo)

  Linux系统中,每创键一个用户,其实默认会以这个用户名的名字再去创键一个组。这个组称之为这个用户的主组。

  uid 是用户的身份证号。(系统是根据uid号来识别用户)

    0 是超级管理员root的uid

    1-999 是系统用户所使用的uid

    >1000 是后续创建的普通用户

  gid 是用户的主组gid号(创键用户的同时,系统会默认创建一个与用户同名、同ID号的组)。

  groups 是该用户所在的所有的组,包括主组和其他附加的组。

  组

 

  与用户相关的一些列文件主要包括/etc/passwd和用户口令文件/etc/shadow

  /etc/group    存放的是组信息

  /etc/gshadow   存放的是组密码

  了解:

  /etc/skel  家目录里的隐藏的源模版

  /home/zhangrenguo  家目录

  /var/spool/mail/zhangrenguo  邮箱文件

    /etc/passwd 存放的是用户的详细信息。

[root@localhost ~]# 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
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
zhangrenguo:x:1000:1000::/home/zhangrenguo:/bin/bash
cat /etc/passwd

 /etc/passwd文件中每一行描述一个用户配置信息,通过“:”隔开,从左到右依次为用户名、密码占位符、uid、gid、用户全称、用户主目录、登录shell

    /etc/shadow

[root@localhost ~]# cat /etc/shadow
root:$6$od4kpwkaGVy8X3u4$ZNEuOXyPnxeth1tQW7UCK.IYWffu7bU1F.6mPn4u.hmnDLxBqWpEP77epgKbNQQfyLrYjYZkD1SXwqnEeI6pH.::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:20218::::::
dbus:!!:20218::::::
polkitd:!!:20218::::::
sshd:!!:20218::::::
postfix:!!:20218::::::
chrony:!!:20218::::::
zhangrenguo:$6$9.u5/otH$UO4S4LfcZCYt7H6p70sJqAuMIQS/1zO/sB7uNbPuoCoaT3xU9u6Of54N9WIhDN9CzCekNaTxvl8d8gaOyCB2i.:20228:0:99999:7:::
cat /etc/shadow

查看当前系统中都登录哪些用户

who

强制某个用户下线

pkill -KILL -u zhangrenguo

查看当前登录的用户是谁

whomi

 

新用户创建必须设置密码才能登录系统,设置密码使用passwd命令,passwd命令还能对用户的密码进行管理,比如创建、修改、删除、锁定等操作。

passwd命令的格式如下:

passwd [选项] [用户名]

 非交互式修改密码:

echo "密码" |passwd --stdin 用户名

[root@localhost ~]# echo "zrg1395147" |passwd --stdin zrg

 

可以利用系统内置变量生成随机字符串来充当密码

[root@localhost ~]# echo $RANDOM|md5sum|cut -c 1-10
fff0fdb400

 

删除用户

  userdel命令的格式如下:

userdel [-r] <用户名>
[root@localhost ~]# userdel -r zhangrenguo

-r 表示在删除该账户时一并删掉该账户对应的主目录(家目录)。

 

修改用户信息

 对于创建好的账户,可以有usermod命令来设置和管理账户的各项属性,包括登录名、家目录名、用户组、登录shell等。

usermod命令的格式如下:

[root@localhost ~]# usermod [选项] <用户名>

将zhangrenguo用户的登录名改为zrg

[root@localhost ~]# usermod -l zrg zhangrenguo

 

    组的增删改查

      创建一个组:

gruopadd [选项] [用户组名]
[root@localhost ~]# groupadd hr

      修改组

    -n 指定用户组的名称,将salve改名为sale。

[root@localhost ~]# gruopmod -n sale salve

      删除组

[root@localhost ~]# groupdel -r it

      组成员管理

      -a 添加用户到用户组

      -d 将用户从用户组中移除

       把用户yj添加到it组。如果添加多个用户-M 多个用户用逗号分隔开

[root@localhost ~]# gpasswd -a yj it
[root@localhost ~]# gpasswd -M user1,user2,user3 it

    从it组移除成员user2

[root@localhost ~]# gpasswd -d uder2 it

 

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

看一下根目录下的etc目录下的passwd文件的元数据:

-rw-r--r--. 1 root root 846 5月  11 05:43 /etc/passwd

-rw-  属主的权限有哪些

r--   属组的权限有哪些

r--   其他人对这个文件有哪些权限

.

1

root  属主是谁

root  属组是谁

846  

5月  11 05:43 /etc/passwd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

张仁国

 

posted @ 2025-05-19 17:13  张仁国  阅读(25)  评论(0)    收藏  举报
目录代码