Linux下用户和用户组管理以及文件权限管理


一. 用户账号管理

1. 添加新用户账号

创建新用户的的命令是 useradd

Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]

Options:
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
  -f, --inactive INACTIVE       password inactivity period of the new account
  -g, --gid GROUP               name or ID of the primary group of the new
                                account
  -G, --groups GROUPS           list of supplementary groups of the new
                                account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           use this alternative skeleton directory
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
  -m, --create-home             create the user's home directory
  -M, --no-create-home          do not create the user's home directory
  -N, --no-user-group           do not create a group with the same name as
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping
常用的一些选项
  • -d 目录, 指定用户的主目录,如果该目录不存在,可以加上-m选项,会自动创建主目录
  • -g 用户组, 指定用户所属的用户组
  • -G 用户组, 指定用户所属的附加组
  • -s shell, 指定用户所属的shell (默认是 /bin/sh)
  • -p 密码, 用户密码
实例
  • 创建用户sam, 并且创建用户的主目录为 /home/sam
useradd -d /home/sam -m  sam

不指定用户组的话,默认用户组就是名为用户名的用户组

root@debian:~# groups sam
sam : sam
  • 创建用户sam1, 主目录/home/sam1, 设置其主用户组为 group0, 同时又属于用户组 group1 和 group2, 并且设置其登陆shell为/bin/sh(笔者比较喜欢 /bin/bash)
useradd -s /bin/sh -d /home/sam1 -m -g group0 -G group1,group2 sam1

2. 删除用户账号

删除用户账号的命令是 userdel

Usage: userdel [options] LOGIN

Options:
  -f, --force                   force removal of files,
                                even if not owned by user
  -h, --help                    display this help message and exit
  -r, --remove                  remove home directory and mail spool
  -R, --root CHROOT_DIR         directory to chroot into
  -Z, --selinux-user            remove any SELinux user mapping for the user
实例
userdel sam1

但是一般我们使用选项 -r,将用户的主目录一起删除

userdel -r sam1

3. 修改用户账号

修改用户账号的属性的命令是 usermod

Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

常用的 -d, -m, -g, -G, -s等等,跟useradd里面选项还有事一样的

实例
root@debian:~# usermod -d /home/sam_new -m -s /bin/bash -g group3 sam
root@debian:~# groups sam
sam : group3

将用户sam的主目录挪到/home/sam_new, 登陆shell改为 /bin/bash, 用户组改为group3

4. gpasswd命令管理组内用户

Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP
  -d, --delete USER             remove USER from GROUP
  -h, --help                    display this help message and exit
  -Q, --root CHROOT_DIR         directory to chroot into
  -r, --remove-password         remove the GROUP's password
  -R, --restrict                restrict access to GROUP to its members
  -M, --members USER,...        set the list of members of GROUP
  -A, --administrators ADMIN,...
                                set the list of administrators for GROUP
常用选项
  • a: 添加用户到指定用户组
  • d: 将用户从指定用户组删除
实例
  • 将用户sam添加到用户组group0
root@debian:~# groups sam
sam : group3
root@debian:~# gpasswd -a sam group0
Adding user sam to group group0
root@debian:~# groups sam
sam : group3 group0
  • 将用户sam从用户组group0删除
root@debian:~# groups sam
sam : group3 group0
root@debian:~# gpasswd -d sam group0
Removing user sam from group group0
root@debian:~# groups sam
sam : group3

5. 用户密码管理

用户密码管理的命令是 passwd

Usage: passwd [options] [LOGIN]

Options:
  -a, --all                     report password status on all accounts
  -d, --delete                  delete the password for the named account
  -e, --expire                  force expire the password for the named account
  -h, --help                    display this help message and exit
  -k, --keep-tokens             change password only if expired
  -i, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --lock                    lock the password of the named account
  -n, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -q, --quiet                   quiet mode
  -r, --repository REPOSITORY   change password in REPOSITORY repository
  -R, --root CHROOT_DIR         directory to chroot into
  -S, --status                  report password status on the named account
  -u, --unlock                  unlock the password of the named account
  -w, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS
  -x, --maxdays MAX_DAYS        set maximum number of days before password
                                change to MAX_DAYS

常用选项
  • -l, 锁定口令, 即禁用账号
  • -u, 解锁口令,恢复账号
  • -d, 删除账号的密码
  • -f, 强迫用户下次登录的时候修改密码
修改密码
root@debian:~# passwd sam
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

如果passwd后面不指定用户名的话,默认修改当前用户的密码

二. 用户组管理

1. 新增一个用户组

创建一个新用户组的命令是groupadd

Usage: groupadd [options] GROUP

Options:
  -f, --force                   exit successfully if the group already exists,
                                and cancel -g if the GID is already used
  -g, --gid GID                 use GID for the new group
  -h, --help                    display this help message and exit
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -o, --non-unique              allow to create groups with duplicate
                                (non-unique) GID
  -p, --password PASSWORD       use this encrypted password for the new group
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into

实例
  • 创建用户组group4
root@debian:~# groupadd group4

2. 删除一个用户组

删除一个用户组的命令是groupdel

Usage: groupdel [options] GROUP

Options:
  -h, --help                    display this help message and exit
  -R, --root CHROOT_DIR         directory to chroot into
实例
  • 删除用户组group4
root@debian:~# groupdel group4

3. 修改一个用户组的属性

修改用户组属性的命令是groupmod

Usage: groupmod [options] GROUP

Options:
  -g, --gid GID                 change the group ID to GID
  -h, --help                    display this help message and exit
  -n, --new-name NEW_GROUP      change the name to NEW_GROUP
  -o, --non-unique              allow to use a duplicate (non-unique) GID
  -p, --password PASSWORD       change the password to this (encrypted)
                                PASSWORD
  -R, --root CHROOT_DIR         directory to chroot into

4. 切换用户组合,查询用户的用户组

  • 如果用户有多个用户组,可以用命令newgrp进行切换
sam3@debian:~$ groups
sam3 group0
sam3@debian:~$ mkdir bb
sam3@debian:~$ ls -l
total 8
drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:19 a
drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:28 bb
sam3@debian:~$ newgrp group0
sam3@debian:~$ mkdir cc
sam3@debian:~$ ls -l
total 12
drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:19 a
drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:28 bb
drwxr-xr-x 2 sam3 group0 4096 Sep  5 15:29 cc

  • 查询用户的所用组可以用命令 groups 或者id
root@debian:~# groups sam3
sam3 : sam3 group0
root@debian:~# id sam3
uid=1005(sam3) gid=1007(sam3) groups=1007(sam3),1003(group0)

三. 文件权限管理

1. 文件权限位说明

sam3@debian:~$ ls -l
total 8
drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
-rwxr-xr-x 1 sam3 group0   26 Sep  5 15:32 test.sh

我们看文件aa的权限位

drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa

文件的权限描述共10个字符

  • 第一个字符有三个值, 文件(-), 目录(d), 链接(l)
  • 剩余9个字符每3个一组(rwx), 可读(r), 可写(w), 可执行(x)
  • 第一组rwx: 表示文件的所有者的权限是可读,可写,可执行
  • 第二组r-x: 表示与文件所有者同一个用户组的用户的权限是可读,不可写,可执行
  • 第三组r-x: 表示与文件所有者不同用户组的用户的权限是不可写,可执行
    用数字表示的时候,认为每组权限用3个二进制位表示rwx <=> 111, r-x <=> 101, 或者可以简单的用r=4, w=2, x= 1, 表示 rwx= 4+2+1 =7
  • 接下来的 2 表示连接的文件数
  • sam3 表示文件的所属用户
  • sam3 表示用户所在的用户组
  • 4096表示文件的大小
  • Sep 5 15:33 表示文件的最后修改时间
  • aa 表示文件名

2. 修改文件的权限位

修改文件的权限位可以用命令chmod

chmod 755 test.sh:赋予test.sh权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
chmod a+r abc:给所有用户添加读的权限

3. 修改用户的所有者以及用户组

初始状态

sam3@debian:~$ ls -l
total 12
drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
-rwxr-xr-x 2 sam3 group0   26 Sep  5 15:32 test_hln.sh
lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
-rwxr-xr-x 2 sam3 group0   26 Sep  5 15:32 test.sh
  • 修改文件的所有者使用命令chown
    修改test.sh的所有者为sam
root@debian:/home/sam3# chown sam test.sh
root@debian:/home/sam3# ls -l
total 12
drwxr-xr-x 2 sam3 sam3   4096 Sep  5 15:33 aa
-rwxr-xr-x 2 sam  group0   26 Sep  5 15:32 test_hln.sh
lrwxrwxrwx 1 sam3 sam3      7 Sep  5 15:33 test_ln.sh -> test.sh
-rwxr-xr-x 2 sam  group0   26 Sep  5 15:32 test.sh
  • 修改文件的所属用户组使用命令chgrp
    修改test.sh所属的用户组为sam
root@debian:/home/sam3# chgrp sam test.sh
root@debian:/home/sam3# ls -l
total 12
drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:33 aa
-rwxr-xr-x 2 sam  sam    26 Sep  5 15:32 test_hln.sh
lrwxrwxrwx 1 sam3 sam3    7 Sep  5 15:33 test_ln.sh -> test.sh
-rwxr-xr-x 2 sam  sam    26 Sep  5 15:32 test.sh
  • 同时修改文件的所有者和用户组使用chown -R
    将test.sh的所有者和用户组都修改为sam3
root@debian:/home/sam3# chown -R sam3:sam3 test.sh
root@debian:/home/sam3# ls -l
total 12
drwxr-xr-x 2 sam3 sam3 4096 Sep  5 15:33 aa
-rwxr-xr-x 2 sam3 sam3   26 Sep  5 15:32 test_hln.sh
lrwxrwxrwx 1 sam3 sam3    7 Sep  5 15:33 test_ln.sh -> test.sh
-rwxr-xr-x 2 sam3 sam3   26 Sep  5 15:32 test.sh
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容