当前位置: 澳门新濠3559 > 服务器运维 > 正文

界面来从一系列选项中进行选择,当你需要管理

时间:2019-11-08 22:07来源:服务器运维
Linux 下如何修改用户名(同时修改用户组名和家目录) | Linux 中国,linux用户组 有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录

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 或识别二维码直达

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

Pick:一款 Linux 上的命令行模糊搜索工具 | Linux 中国,pick模糊搜索

它允许用户通过 ncurses(3X) 界面来从一系列选项中进行选择,而且还支持模糊搜索的功能。当你想要选择某个名字中包含非英文字符的目录或文件时,这款工具就很有用了。

-- Sk

本文导航

◈ 安装 Pick11%

◈ 用法37%

编译自 |  
 作者 | Sk
 译者 | lujun9972

今天,我们要讲的是一款有趣的命令行工具,名叫 Pick。它允许用户通过 ncurses(3X) 界面来从一系列选项中进行选择,而且还支持模糊搜索的功能。当你想要选择某个名字中包含非英文字符的目录或文件时,这款工具就很有用了。你根本都无需学习如何输入非英文字符。借助 Pick,你可以很方便地进行搜索、选择,然后浏览该文件或进入该目录。你甚至无需输入任何字符来过滤文件/目录。这很适合那些有大量目录和文件的人来用。

安装 Pick

对 Arch Linux 及其衍生品来说,Pick 放在 AUR[1] 中。因此 Arch 用户可以使用类似 Pacaur[界面来从一系列选项中进行选择,当你需要管理一台容纳多个用户的 Linux。2],Packer[3],以及 Yaourt[4] 等 AUR 辅助工具来安装它。

pacaur -S pick

或者,

packer -S pick

或者,

yaourt -S pick

Debian,Ubuntu,Linux Mint 用户则可以通过运行下面命令来安装 Pick。

sudo apt-get install pick

其他的发行版则可以从这里[5]下载最新的安装包,然后按照下面的步骤来安装。在写本指南时,其最新版为 1.9.0。

wget https://github.com/calleerlandsson/pick/releases/download/v1.9.0/pick-1.9.0.tar.gztar -zxvf pick-1.9.0.tar.gzcd pick-1.9.0/

使用下面命令进行配置:

./configure

最后,构建并安装 Pick:

makesudo make install

用法

通过将它与其他命令集成能够大幅简化你的工作。我这里会给出一些例子,让你理解它是怎么工作的。

让们先创建一堆目录。

mkdir -p abcd/efgh/ijkl/mnop/qrst/uvwx/yz/

现在,你想进入目录 /ijkl/。你有两种选择。可以使用 cd 命令:

cd abcd/efgh/ijkl/

或者,创建一个快捷方式[6] 或者说别名指向这个目录,这样你可以迅速进入该目录。

但,使用 pick 命令则问题变得简单的多。看下面这个例子。

cd $(find . -type d | pick)

这个命令会列出当前工作目录下的所有目录及其子目录,你可以用上下箭头选择你想进入的目录,然后按下回车就行了。

像这样:

而且,它还会根据你输入的内容过滤目录和文件。比如,当我输入 “or” 时会显示如下结果。

这只是一个例子。你也可以将 pick 命令跟其他命令一起混用。

这是另一个例子。

find -type f | pick | xargs less

该命令让你选择当前目录中的某个文件并用 less 来查看它。

还想看其他例子?还有呢。下面命令让你选择当前目录下的文件或目录,并将之迁移到其他地方去,比如这里我们迁移到 /home/sk/ostechnix

mv "$(find . -maxdepth 1 |pick)" /home/sk/ostechnix/

通过上下按钮选择要迁移的文件,然后按下回车就会把它迁移到 /home/sk/ostechnix/目录中的。

从上面的结果中可以看到,我把一个名叫 abcd 的目录移动到 ostechnix 目录中了。

使用方式是无限的。甚至 Vim 编辑器上还有一个叫做 pick.vim[7] 的插件让你在 Vim 中选择更加方便。

要查看详细信息,请参阅它的 man 页。

man pick

我们的讲解至此就结束了。希望这款工具能给你们带来帮助。如果你觉得我们的指南有用的话,请将它分享到您的社交网络上,并向大家推荐我们。


via: 

作者:SK[9] 译者:lujun9972 校对:wxy

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

LCTT 译者

lujun9972 ? ? ? ?

共计翻译:69 篇

贡献时间:46 天

推荐文章

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

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

原文链接

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

澳门新濠3559 1

Linux 是一个多用户分时系统,想要使用系统资源,就必须在系统中有合法的账号,每个账号都有一个唯一的用户名,同时必须设置密码。

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

Linux 用户和用户组

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

UID 和 GID

事实上,Linux 系统采用一个 32 位的整数记录和区分不同的用户,这意味着系统可以记录多达40亿个不同的用户。这个用来区分不同用户的数字被称为 User ID ,简称 UID。系统会自动记录“用户名”和“UID” 的对应关系。

Linux 系统中的用户分为3类,即普通用户、根用户、系统用户。

用户登录 权限
普通用户 只能在其家目录、系统临时目录或其他经过授权的目录中操作,以及属于该用户的文件,通常普通用户的UID大于500,从500开始编号。
根用户 即ROOT用户,它的ID是0,也被称为超级用户,拥有对系统的完全控制权。
系统用户 系统用户指系统运行时必须有的用户,但并不是指真的使用者。比如在RedHat 或 CentOS 下运行网站服务时,需要使用系统用户 Apache 来运行 httpd 进程,而运行 Mysql 数据库服务时,需要使用系统用户 mysql 来运行 mysql 进程。系统用户的ID范围是 1-499。

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

用户组

在Linux系统中除了有用户之外,还有“用户组”的概念,不同的用户组同样也是用数字来区分的,这种用于区分不同用户组的ID被称为Group ID ,也就是GID。

澳门新濠3559 2

image

查看ID

id

查看组

groups

为了达到演示的目的,我将假设:

配置文件

记录用户和用户的配置文件

澳门新濠3559 3

image

你需要用下面两个用户名新建两个用户:

新增用户

useradd UserName

对于系统来说,完成这个命令需要在后台执行很多行为。

  • 将用户信息记录在 /etc/passwd 中,一般会在 /etc/password 和 /etc/shadow 两个配置文件末尾追加一条记录,同时会分配给该用户一个UID。

澳门新濠3559 4

image

  • 接着,要为该用户自动创建家目录。家目录以创建的用户名为目录名,创建的路径在/home 目录中。

澳门新濠3559 5

澳门新濠3559,image

  • 然后,复制 /etc/skel 下所有的文件至 /home/john 。说明一下,如果你使用ls -l /etc/skel 命令查看,可以发现这个目录下,什么也没有,但事实上,该目录下有很多隐藏文件,用户 ls -la /etc/skel 可以查看。

澳门新濠3559 6

image

  • 最后,新建一个与该用户名一样的用户组,也就是说创建一个用户的同时,也创建了一个与用户名相同的用户组,而用户默认属于这个用户组。

可以说,/etc/skel 实际上是创建用户时的"模板"。

可以在创建用户的时候指定UID和GID

useradd -u UID UserName
useradd -g GroupName UserName

还可以使用-d参数指定该用户的家目录,而不是使用系统默认的家目录。

useradd -d /home/DirName UserName
  • olivia
  • nathan

设置密码

passwd UserName

澳门新濠3559 7

image

你需要新建以下两个用户组:

更改用户信息

  • readers
  • editors

更改家目录

usermod -d NewDir -m UserName

olivia 属于 editors 用户组,而 nathan 属于 readers 用户组。reader 用户组对 /DATA 目录只有读的权限,而 editors 用户组则对 /DATA 目录同时有读和写的权限。当然,这是个非常小的任务,但它会给你基本的信息,你可以扩展这个任务以适应你其他更大的需求。

锁定/解锁用户

usermod -L UserName
usermod -U UserName

其实 usermod 命令就是对 /etc/passwd 和 /etc/shadow 文件做一些修改而已。明白了这个道理之后,就算不实用这个命令依然可以手工对用户进行修改操作。

我将在 Ubuntu 16.04 Server 平台上进行演示。这些命令都是通用的,唯一不同的是,要是在你的发行版中不使用 sudo 命令,你必须切换到 root 用户来执行这些命令。

删除用户

userdel UserName

使用这个命令可以删除用户在 /etc/passwd 和 /etc/shadow 中的记录。但是从数据安全方面考虑,默认情况下,删除用户并不会删除用户的家目录和邮件信息。可以使用-r参数删除用户家目录和用户的邮件。

一旦执行了这条命令,该用户的相关文件就会被全部删除。

 

新增和删除用户组

创建用户

我们需要做的第一件事是为我们的实验创建两个用户。可以用 useradd 命令来创建用户,我们不只是简单地创建一个用户,而需要同时创建用户和属于他们的家目录,然后给他们设置密码。

  1. sudouseradd-m olivia
  2. sudouseradd-m nathan

我们现在创建了两个用户,如果你看看 /home 目录,你可以发现他们的家目录(因为我们用了 -m 选项,可以在创建用户的同时创建他们的家目录。

之后,我们可以用以下命令给他们设置密码:

  1. sudopasswd olivia
  2. sudopasswd nathan

就这样,我们创建了两个用户。

 

新增用户组

groupadd GroupName

在Linux中,使用 /etc/group 文件来记录用户组。

澳门新濠3559 8

image

创建用户组并添加用户

现在我们将创建 readers 和 editors 用户组,然后给它们添加用户。创建用户组的命令是:

  1. addgroup readers
  2. addgroup editors

(LCTT 译注:当你使用 CentOS 等一些 Linux 发行版时,可能系统没有 addgroup 这个命令,推荐使用 groupadd 命令来替换 addgroup 命令以达到同样的效果)

澳门新濠3559 9

图一:我们可以使用刚创建的新用户组了。

创建用户组后,我们需要添加我们的用户到这两个用户组。我们用以下命令来将 nathan 用户添加到 readers 用户组:

  1. sudousermod-a -G readers nathan

用以下命令将 olivia 添加到 editors 用户组:

  1. sudousermod-a -G editors olivia

现在我们可以通过用户组来管理用户了。

 

删除用户组

groupdel GroupName

这里需要注意的是,如果已有用户属于这个试图删除的组,该操作会失败。

给用户组授予目录的权限

假设你有个目录 /READERS 且允许 readers 用户组的所有成员访问这个目录。首先,我们执行以下命令来更改目录所属用户组:

  1. sudochown-R :readers /READERS

接下来,执行以下命令收回目录所属用户组的写入权限:

  1. sudochmod-R g-w/READERS

然后我们执行下面的命令来收回其他用户对这个目录的访问权限(以防止任何不在 readers 组中的用户访问这个目录里的文件):

  1. sudochmod-R o-x /READERS

这时候,只有目录的所有者(root)和用户组 reader 中的用户可以访问 /READES 中的文件。

假设你有个目录 /EDITORS ,你需要给用户组 editors 里的成员这个目录的读和写的权限。为了达到这个目的,执行下面的这些命令是必要的:

  1. sudochown-R :editors /EDITORS
  2. sudochmod-R g+w/EDITORS
  3. sudochmod-R o-x /EDITORS

此时 editors 用户组的所有成员都可以访问和修改其中的文件。除此之外其他用户(除了 root 之外)无法访问 /EDITORS 中的任何文件。

使用这个方法的问题在于,你一次只能操作一个组和一个目录而已。这时候访问控制表(ACL)就可以派得上用场了。

 

检查用户信息

使用访问控制表(ACL)

现在,让我们把这个问题变得棘手一点。假设你有一个目录 /DATA 并且你想给 readers 用户组的成员读取权限,并同时给 editors 用户组的成员读和写的权限。为此,你必须要用到 setfacl 命令。setfacl 命令可以为文件或文件夹设置一个访问控制表(ACL)。

这个命令的结构如下:

  1. setfacl OPTION X:NAME:Y /DIRECTORY

其中 OPTION 是可选选项,X 可以是 u(用户)或者是 g (用户组),NAME 是用户或者用户组的名字,/DIRECTORY 是要用到的目录。我们将使用 -m 选项进行修改。因此,我们给 readers 用户组添加读取权限的命令是:

  1. sudosetfacl-m g:readers:rx -R /DATA

现在 readers 用户组里面的每一个用户都可以读取 /DATA 目录里的文件了,但是他们不能修改里面的内容。

为了给 editors 用户组里面的用户读写权限,我们执行了以下命令:

  1. sudosetfacl-m g:editors:rwx -R /DATA

上述命令将赋予 editors 用户组中的任何成员读取权限,同时保留 readers 用户组的只读权限。

 

查看用户

users       // 查看当前系统有哪些用户

澳门新濠3559 10

image

从截图中发现有多个 ROOT 在当前机器中登录。实际上, Linux会把来自不同终端的活动定义为一个会话,从 who 命令的输出,可以看出 root 用户是通过不同的终端登录到系统中的。users 命令相对比较简单,所以列出的信息也比较少,可以使用命令 who 来看到更多的信息。

澳门新濠3559 11

image

命令显示的结果有3列,第一列是登录用户的用户名,第二列是用户登录的终端,第三列是用户登录的时间。如果是通过远程网络登录,则同时会显示远程主机的主机名或IP地址。还可以使用命令 w 看到更详细的信息。

澳门新濠3559 12

image

解释
1 登录用户的用户名
2 用户登录的终端
3 如果用户从网络登录,则显示远程主机的主机名或IP地址
4 用户登录的时间
5 用户闲置的时间
6 与终端用户的当前所有运行进程消耗的CPU时间总量
7 当前WHAT列所对应的进程所消耗的CPU时间总量
8 用户当前运行的进程

更多的权限控制

使用访问控制表(ACL),你可以实现你所需的权限控制。你可以添加用户到用户组,并且灵活地控制这些用户组对每个目录的权限以达到你的需求。如果想了解上述工具的更多信息,可以执行下列的命令:

  • man usradd
  • man addgroup
  • man usermod
  • man sefacl
  • man chown
  • man chmod

via:

作者:[Jack Wallen] 译者:imquanquan 校对:wxy

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149227.htm

澳门新濠3559 13

调查用户

finger

澳门新濠3559 14

image

如果发现没有该命令,需要安装:

yum install finger

切换用户

在使用Linux的过程中,很多时候由于实际需要可能要在不同的用户之间切换。比如原本是使用普通用户登录的,但是在操作的过程中由于权限原因必须使用 root 用户来做一些操作,这时就需要临时切换成 ROOT 用户。操作完成之后,再推出切换成普通用户。涉及到两种方法:su 和 sudo 。

切换成其他用户

su - UserName

如果不加参数,默认切换到 root 用户。完成操作之后,使用 exit 命令可以退出root切换到用来的用户。

su 命令后面还可以加上一个"-" 参数,就是键盘上的中横线。加上这个参数之后,切换成 root 的用户环境。所谓"用户环境"就是 /etc/passwd 中定义的家目录、使用的 Shell,以及关于这个用户的个性化设置等。

su 命令虽然方便,但还是有明显的缺陷,就是切换成其他用户要知道其密码。如果需要切换成 root ,那就要知道 root 的密码。我们知道,root 是系统中权限最高的用户,如果让太多人知道 root 密码,必然是很不安全的。为解决这个问题,我们可以使用 sudo 命令。

用其他用户的身份执行命令

sudo command // 使用 root 身份执行命令

澳门新濠3559 15

image

运行该命令的时候,系统首先检查 /etc/sudoers,判断该用户是否有执行 sudo 的权限,在确认有执行权限之后,系统要求用户输入自己的密码,如果密码输入正确,则会使用 root 用户的身份运行 passwd UserName 命令。

使用 visudo 命令来修改 /etc/sudoers 配置文件,它可以自动检查语法。

澳门新濠3559 16

image

加入 "username ALL =(ALL)ALL" 这一行代表的意思是,john 这个用户可以从任何地方登陆后执行任何人的任何命令。还可以定义某一组的 sudo 权限,比如 "%username ALL=(ALL)ALL" 可以让所有属于 john 用户组的用户从任何地方登陆后执行任何人的任何命令。

假设用户由于工作需要,经常要重启或者关闭服务器,那么就可以进行如下设置:

username ALL=(ALL) NOPASSWD:/sbin/shutdown,/usr/bin/reboot

严格来说,sudo 并不是真的切换了用户,而是使用其他用户的身份和权限执行了命令。

执行任务管理

日常生活中常会有例行性的事情,比如说每周工作日的闹钟、每年一次的生日提醒等。还有一些事情是偶发性的,比如突然需要处理一封紧急的邮件等。在Linux中也有处理这两种任务的方法。**如果任务是周期性执行的,其命令为 cron;如果只是在某一个特定的时间执行一次,其命令为 at **。

单一时刻执行一次任务

定时关机

澳门新濠3559 17

image

第一行是定义从现在开始计算,30分钟后安排一个任务;

第二行是到了时间后执行关机操作;

第三行是<EOT>,这不是键盘输入的,而是使用了组合键 Ctrl+D ,表示输入结束。

第四行是系统提示有一个任务将于该时间执行。

atq         // 查看当前使用 at 命令调度的任务列表

澳门新濠3559 18

image

也可以使用如下命令删除已经进入任务队列的任务

atrm id 

澳门新濠3559 19

image

使用 at 还可以安排在具体的时间执行任务

澳门新濠3559 20

image

默认情况下,所有用户都可以使用 at 命令来调度自己的任务,如果由于特殊的原因需要禁止某些用户使用这个功能,可以将该用户的用户名添加至 /etc/at.deny 中。

澳门新濠3559 21

image

周期性执行任务 cron

首先要确定crond进程在运行,如果没有运行,需要先启动该进程。

澳门新濠3559 22

image

该命令的执行环境为 CentOS 7

用户可以使用 crontab 来设置自己的计划任务,并使用-e参数来编辑任务。在这之前需要先了解一下设置的语法,但使用 crontab -e 进入编辑模式时,需要编辑执行的时间和执行的命令。

在下面的示例中,前面5个*可以用来定义时间:

序号 含义
1 分钟
2 小时
3 日期
4 月份
5 星期几

举例

crontab -e

// 以下两种写法其实是一致的,都是每分钟重启 httpd 进程。
* * * * * systemctl restart httpd.services
*/1 * * * * systemctl restart httpd.services

// 每小时重启 httpd 进程
* 23-3/1 * * * systemctl restart httpd.services

// 每天晚上23点30分重启 httpd 进程
30 23 1 * * systemctl restart httpd.services

删除所有的任务

crontab -r

禁止某用户使用该功能

vim /etc/cron.deny

root 可以使用 -u 查看指定用户的任务

crontab -u UserName -l

/etc/crontab 的管理

用户可以通过 crontab -e 命令来编辑定义自己的任务,事实上,系统也有自己的例行任务,而其配置文件是 /etc/crontab 。

澳门新濠3559 23

image

编辑:服务器运维 本文来源:界面来从一系列选项中进行选择,当你需要管理

关键词: