21%◈ 如何确认是否启用了 ACL,我们可以很容易

Linux 下如何修改用户名(同时修改用户组名和家目录) | Linux 中国,linux用户组

有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和 UID。-- Shusain

本文导航◈ 修改用户名12%◈ 修改家目录43%◈ 更改用户 UID52%◈ 修改用户组名60%编译自 |  
 作者 | Shusain
 译者 | lujun9972

有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和 UID。

本教程将会讨论这些东西。让我们先从修改用户名开始。

修改用户名

我们使用 usermod 来修改用户名。其语法为,

  1. $ usermod -l new_username old_username

举个例子,假设我们有一个名叫 dan 的用户想要重命名为 susan,那么在终端下执行下面命令:

  1. $ sudo usermod -l susan dan

这只会更改用户名,而其他的东西,比如用户组,家目录,UID 等都保持不变。

注意:- 你需要从要改名的帐号中登出并杀掉该用户的所有进程,要杀掉该用户的所有进程可以执行下面命令,

  1. $ sudo pkill -u dan

  2. $ sudo pkill -9 -u dan

修改家目录

要同时更改家目录,我们需要在执行 usermod 命令的同时加上 -d 选项,

  1. $ sudo usermod -d /home/susan -m susan

更改用户 UID

执行下面命令修改用户 UID,

  1. $ sudo usermod -u 2000 susan

这里 2000 就是用户的新 UID。

修改用户组名

要把用户组名从 dan 修改为 susan,我们需要使用 groupmod 命令。使用下面命令来修改用户组名,

  1. $ groupmod -n susan dan

做完修改后,可以使用 id 命令来检查,

  1. $ id susan

这篇教导如何修改用户名的指南就此结束了。有任何疑问或建议,欢迎给我们留言。


via: 

作者:Shusain[2] 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者lujun9972 ? ? ? ?共计翻译:44 篇贡献时间:35 天

推荐文章

< 左右滑动查看相关文章 >

点击图片、输入文章 ID 或识别二维码直达

原文链接请访问“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。

图片 1

通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息。

使用 ACL 设置用户访问指定文件/目录的权限 | Linux 中国,acllinux

ACL 表示访问控制列表(Access Control List,ACL),它为文件系统提供了附加的、更具有弹性的权限机制。 它被设计来为补充 UNIX 文件权限机制。-- Magesh Maruthamuthu

本文导航◈ 什么是 ACL?16%◈ 什么是 setfacl?20%◈ 什么 getfacl?21%◈ 如何确认是否启用了 ACL?24%◈ 如何查看默认的 ACL 值38%◈ 如何为文件设置 ACL43%◈ 如何为目录设置 ACL56%◈ 如何为组设置 ACL68%◈ 如何删除 ACL75%◈ 如何备份并还原 ACL88%编译自 |  
 作者 | Magesh Maruthamuthu
 译者 | lujun9972

当提到文件和目录的权限时,你的第一反应可能是“属主/群组/其它”权限。 这些权限可以通过 chmod、 chown 等命令来修改。

文件和目录都有属主 (文件所有者 )、群组 (所属组) 以及其它权限,这些权限构成一个集合。 然而这些权限集合有它的局限性,无法做到为不同的用户设置不同的权限。

Linux 对文件和目录有以下默认权限。

◈ 文件 -> 644 -> -rw-r-r- (所有者有读写权限,组成员有只读权限, 其他人也只有读权限)◈ 目录 -> 755 -> drwxr-xr-x (所有者有读、写和执行权限,组成员有读和执行的权限,其他人也有读和执行的权限)

比如: 默认情况下,所有者可以访问和编辑他们自己主目录中的文件, 也可以访问相关同组人的文件,但他们不能修改这些文件,因为组成员没有写权限,而且让组成员有写权限也是不明智的。 基于同样的原因,他/她也不能修改其他人的文件。 然而在某些情况下,多个用户想要修改同一个文件, 那该怎么办呢?

假设有个名叫 magi 的用户,他想要修改 httpd.conf 文件怎么办呢? 这个文件是归 root 用户所有的,这样如何授权呢? 为了解决这种情况,访问控制列表Access Control List(ACL)诞生了。

什么是 ACL?

ACL 表示访问控制列表Access Control List(ACL),它为文件系统提供了附加的、更具有弹性的权限机制。 它被设计来为补充 UNIX 文件权限机制。 ACL 允许你赋予任何某用户/组访问某项资源的权限。 setfacl 与 getfacl 命令会帮助你管理 ACL 而不会有任何麻烦。

什么是 setfacl?

setfacl 用于设置文件和目录的 ACL。

什么 getfacl?

getfacl - 获取文件的 ACL 。对于每个文件, getfacl 都会显示文件名、文件所有者、所属组以及ACL。 如果目录有默认 ACL, getfacl 也会显示这个默认的 ACL。

如何确认是否启用了 ACL?

运行 tune2fs 命令来检查是否启用了 ACL。

  1. # tune2fs -l /dev/sdb1 | grep options

  2. Default mount options: (none)

上面的输出很明显第说明 /dev/sdb1 分区没有启用 ACL。

如果结果中没有列出 acl,则你需要在挂载选项中加上 acl。 为了让它永久生效, 修改 /etc/fstab 中 /app 这一行成这样:

  1. # more /etc/fstab

  2. ``

  3. UUID=f304277d-1063-40a2-b9dc-8bcf30466a03 / ext4 defaults 1 1

  4. /dev/sdb1        /app ext4 defaults,acl 1 1

  5. ``

或者,你也可以使用下面命令将其添加道文件系统的超级块中:

  1. # tune2fs -o +acl /dev/sdb1

现在,通过运行以下命令来动态修改选项:

  1. # mount -o remount,acl /app

再次运行 tune2fs 命令来看选项中是否有 acl 了:

  1. # tune2fs -l /dev/sdb1 | grep options

  2. Default mount options: acl

嗯,现在 /dev/sdb1 分区中有 ACL 选项了。

如何查看默认的 ACL 值

要查看文件和目录默认的 ACL 值,可以使用 getfacl 命令后面加上文件路径或者目录路径。 注意, 当你对非 ACL 文件/目录运行 getfacl 命令时, 则不会显示附加的 user和 mask 参数值。

  1. # getfacl /etc/apache2/apache2.conf

  2. ``

  3. # file: etc/apache2/apache2.conf

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. other::r--

如何为文件设置 ACL

以下面格式运行 setfacl 命令可以为指定文件设置 ACL。在下面的例子中,我们会给 magi 用户对 /etc/apache2/apache2.conf 文件 rwx 的权限。

  1. # setfacl -m u:magi:rwx /etc/apache2/apache2.conf

仔细分析起来:

◈ setfacl: 命令◈ -m: 修改文件的当前 ACL◈ u: 指明用户◈ magi: 用户名◈ rwx: 要设置的权限◈ /etc/apache2/apache2.conf: 文件名称

再查看一次新的 ACL 值:

  1. # getfacl /etc/apache2/apache2.conf

  2. ``

  3. # file: etc/apache2/apache2.conf

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. user:magi:rwx

  8. group::r--

  9. mask::rwx

  10. other::r--

注意: 若你发现文件或目录权限后面有一个加号(+),就表示设置了 ACL。

  1. # ls -lh /etc/apache2/apache2.conf

  2. -rw-rwxr--+ 1 root root 7.1K Sep 19 14:58 /etc/apache2/apache2.conf

如何为目录设置 ACL

以下面格式运行 setfacl 命令可以递归地为指定目录设置 ACL。在下面的例子中,我们会将 /etc/apache2/sites-available/ 目录中的 rwx 权限赋予 magi 用户。

  1. # setfacl -Rm u:magi:rwx /etc/apache2/sites-available/

其中:

◈ -R: 递归到子目录中

再次查看一下新的 ACL 值。

  1. # getfacl /etc/apache2/sites-available/

  2. ``

  3. # file: etc/apache2/sites-available/

  4. # owner: root

  5. # group: root

  6. user::rwx

  7. user:magi:rwx

  8. group::r-x

  9. mask::rwx

  10. other::r-x

  11. ``

现在 /etc/apache2/sites-available/ 中的文件和目录都设置了 ACL。

  1. # ls -lh /etc/apache2/sites-available/

  2. total 20K

  3. -rw-rwxr--+ 1 root root 1.4K Sep 19 14:56 000-default.conf

  4. -rw-rwxr--+ 1 root root 6.2K Sep 19 14:56 default-ssl.conf

  5. -rw-rwxr--+ 1 root root 1.4K Dec 8 02:57 mywebpage.com.conf

  6. -rw-rwxr--+ 1 root root 1.4K Dec 7 19:07 testpage.com.conf

如何为组设置 ACL

以下面格式为指定文件运行 setfacl 命令。在下面的例子中,我们会给 appdev 组赋予 /etc/apache2/apache2.conf 文件的 rwx 权限。

  1. # setfacl -m g:appdev:rwx /etc/apache2/apache2.conf

其中:

◈ g: 指明一个组

对多个用户和组授权,只需要用 逗号 区分开,就像下面这样。

  1. # setfacl -m u:magi:rwx,g:appdev:rwx /etc/apache2/apache2.conf

如何删除 ACL

以下面格式运行 setfacl 命令会删除文件对指定用户的 ACL。这只会删除用户权限而保留 mask 的值为只读。

  1. # setfacl -x u:magi /etc/apache2/apache2.conf

其中:

◈ -x: 从文件的 ACL 中删除

再次查看 ACL 值。在下面的输出中我们可以看到 mask 的值是读。

  1. # getfacl /etc/apache2/apache2.conf

  2. ``

  3. # file: etc/apache2/apache2.conf

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. mask::r--

  9. other::r--

使用 -b 来删除文件中所有的 ACL。

  1. # setfacl -b /etc/apache2/apache2.conf

其中:

◈ -b: 删除所有的 ACL 条目

再次查看删掉后的 ACl 值就会发现所有的东西都不见了,包括 mask 的值也不见了。

  1. # getfacl /etc/apache2/apache2.conf

  2. ``

  3. # file: etc/apache2/apache2.conf

  4. # owner: root

  5. # group: root

  6. user::rw-

  7. group::r--

  8. other::r--

如何备份并还原 ACL

下面命令可以备份和还原 ACL 的值。要制作备份, 需要进入对应的目录然后这样做(假设我们要备份 sites-available 目录中的 ACL 值)。

  1. # cd /etc/apache2/sites-available/

  2. # getfacl -R * > acl_backup_for_folder

还原的话,则运行下面命令:

  1. # setfacl --restore=/etc/apache2/sites-available/acl_backup_for_folder

via: 

作者:Magesh Maruthamuthu[2] 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者lujun9972 ? ? ? ?共计翻译:51 篇贡献时间:39 天

推荐文章

< 左右滑动查看相关文章 >

点击图片、输入文章 ID 或识别二维码直达

原文链接请访问“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。

图片 2

本教程可以了解如何通过用户组和访问控制表(ACL)来管理用户。

大家都知道,Linux 系统中用户信息存放在 /etc/passwd 文件中。

有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和 UID。

当你需要管理一台容纳多个用户的 Linux 机器时,比起一些基本的用户管理工具所提供的方法,有时候你需要对这些用户采取更多的用户权限管理方式。特别是当你要管理某些用户的权限时,这个想法尤为重要。比如说,你有一个目录,某个用户组中的用户可以通过读和写的权限访问这个目录,而其他用户组中的用户对这个目录只有读的权限。在 Linux 中,这是完全可以实现的。但前提是你必须先了解如何通过用户组和访问控制表(ACL)来管理用户。

这是一个包含每个用户基本信息的文本文件。当我们在系统中创建一个用户,新用户的详细信息就会被添加到这个文件中。

本教程将会讨论这些东西。让我们先从修改用户名开始。

我们将从简单的用户开始,逐渐深入到复杂的访问控制表(ACL)。你可以在你所选择的 Linux 发行版完成你所需要做的一切。本文的重点是用户组,所以不会涉及到关于用户的基础知识。

/etc/passwd 文件将每个用户的基本信息记录为文件中的一行,一行中包含 7 个字段。

本文由必威发布于必威-运维,转载请注明出处:21%◈ 如何确认是否启用了 ACL,我们可以很容易

相关阅读