Linux用户相关操作

Linux用户相关操作

这篇文章主要记录一下几个问题

  • 登录远程Linux主机

  • 关机重启命令

  • 用户管理增删用户

  • 用户组的概念

  • 最佳实践

远程登录

要实现远程登录,首先需要保障的是Linux下的sshd启动正常。
windows下我们可以使用xshell5建立会话的方式建立连接,在mac下,我们更多使用命令的方式。

ssh [email protected]

之后输入密码,即可登录。

关机重启命令

使用shutdown命令

立即关机
shutdown -h now
halt

以上两条命令都可以用来关机

延迟关机 一分钟以后
shutdown -h 1
立即重启
shutdown -r now
reboot

以上两个命令都可以用来重启

扫描二维码关注公众号,回复: 5199050 查看本文章

同步

sync

在关机或重启之前,我们可以先执行sync命令,将内存中的数据同步到磁盘。

注销

logout 

需要强调的事,这条命令只在远程访问时有效。我们可以理解为退出了连接会话。

用户管理

在这之前,我们一直使用的事root用户进行的操作,而在现实生产中,我们是一定要重视安全问题的,因为root用户具有极高的操作权限,如果我们每次都使用root用户去操作,可能会造成生产事故。所以往往我们会为开发人员创建单独的用户,而root用户密码仅仅只掌握在少数人手中。

创建用户

非常简单的命令,如下:

useradd dev1

此时我们就成功创建了除了root用户以外的第一个用户。
这里需要注意的是,当我们观察根目录下的home目录下会生成与用户名同名的文件夹。这也说明,我们创建用户的操作是成功的。

/home/dev1

刚才,我们仅仅创建了用户,如果需要登录到远程,还需要密码。

为用户设置密码
passwd dev1

之后连续输入两次密码,前后须保持输入一致。可能会提示密码过于简单等问题。可以不用管。

此时,我们可以退出会话,使用dev1来连接了。

logout
ssh [email protected]

正常的话,我们就可以用dev1连接到会话了。

删除用户

要实现删除用户,我们肯定得使用root账号了。看以下命令:

//断开dev1建立的会话
logout
ssh [email protected] 

userdel dev1

成功之后,为了验证该用户确实无法再登录远程,我们可以测试

// 断开root
logout
ssh [email protected]

正常的话,远程主机会反馈我们如下信息

Permission denied, please try again.

当我们以后再看到这样的信息,应该要考虑用户是否被删除导致无法登录。

此时,我们应该想到,用户被创建时,同时被创建的同名文件夹是否被删除了呢,我们一探究竟。

不出意外的话,结果应该是,文件夹还存在。也就是说,虽然我们删除了用户,但是那个用户之前创建的文件等信息依然留存。如果我们想连同该用户对应的文件夹删除,我们可以尝试以下命令。

为了方便演示,我们创建dev2用户

useradd dev2
passwd dev2
logout
ssh [email protected]

使用新创建dev2连接会话,查看home目录,dev2目录存在。
其实,我们是有疑惑的,为什么dev2下没有像/root下那么多目录,比如桌面,文档,下载等等。那是因为,dev2没有在远程主机的桌面环境下登录过,所以为了dev2下显示的内容更完整,我们可以尝试在centos桌面环境下登录一次。

cd /home/dev2
ls -al

总用量 140
drwx------. 25 dev2 dev2 4096 4月   6 18:04 .
drwxr-xr-x.  5 root root 4096 4月   6 17:32 ..
drwxrwxr-x.  2 dev2 dev2 4096 4月   6 17:45 .abrt
-rw-------.  1 dev2 dev2  302 4月   6 17:45 .bash_history
-rw-r--r--.  1 dev2 dev2   18 5月  11 2016 .bash_logout
-rw-r--r--.  1 dev2 dev2  176 5月  11 2016 .bash_profile
-rw-r--r--.  1 dev2 dev2  124 5月  11 2016 .bashrc
drwxr-xr-x.  3 dev2 dev2 4096 4月   6 17:45 .cache
drwxr-xr-x.  5 dev2 dev2 4096 4月   6 17:45 .config
drwx------.  3 dev2 dev2 4096 4月   6 17:45 .dbus
-rw-------.  1 dev2 dev2   16 4月   6 17:45 .esd_auth
drwx------.  4 dev2 dev2 4096 4月   6 17:46 .gconf
drwx------.  2 dev2 dev2 4096 4月   6 17:46 .gconfd
drwxr-xr-x.  5 dev2 dev2 4096 4月   6 17:45 .gnome2
drwxrwxr-x.  3 dev2 dev2 4096 4月   6 17:45 .gnote
drwx------.  2 dev2 dev2 4096 4月   6 17:45 .gnupg
-rw-rw-r--.  1 dev2 dev2  185 4月   6 17:45 .gtk-bookmarks
drwx------.  2 dev2 dev2 4096 4月   6 17:45 .gvfs
-rw-------.  1 dev2 dev2  310 4月   6 17:45 .ICEauthority
-rw-r--r--.  1 dev2 dev2  791 4月   6 17:45 .imsettings.log
drwxr-xr-x.  3 dev2 dev2 4096 4月   6 17:45 .local
drwxr-xr-x.  4 dev2 dev2 4096 4月   4 06:56 .mozilla
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 .nautilus
drwx------.  2 dev2 dev2 4096 4月   6 17:45 .pulse
-rw-------.  1 dev2 dev2  256 4月   6 17:45 .pulse-cookie
drwx------.  2 dev2 dev2 4096 4月   6 17:45 .ssh
-rw-------.  1 dev2 dev2 1293 4月   6 17:45 .xsession-errors
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 公共的
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 模板
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 视频
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 图片
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 文档
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 下载
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 音乐
drwxr-xr-x.  2 dev2 dev2 4096 4月   6 17:45 桌面

我们可以看到dev2用户产生的工作内容全在dev2目录下。

我们尝试在桌面下创建一个文件

cd 桌面
echo hello > test.txt  //create test.txt file

再次退出使用root连接,尝试删除dev2用户的同时删除dev2目录。

logout
ssh [email protected]

user del -r dev2

cd /home/dev2
ls -al
总用量 0

需要注意的是,我们在正常删除用户命令的基础上加了-r参数,即可删除文件,但是文件本身不会被删除,删除用户名文件夹下的子项。

用户组

为了方便演示,我们创建dev3dev4用户。

useradd dev3
passed dev3

useradd dev4
passed dev4

在讲用户组之前,我们先来学习一个命令,非常简单:

id root
uid=0(root) gid=0(root) 组=0(root)
id dev3
uid=502(dev3) gid=502(dev3) 组=502(dev3)
id dev4
uid=503(dev4) gid=503(dev4) 组=503(dev4)

id username可以用来查看用户信息。

这里涉及到了几个专用名词。

  • uid 指用户id(用户名)
  • gid 指用户所在组id (组名)

我们看到,我们在创建一个用时,Linux时将用户名当做组名,并将该用户加入改组中。

那么我们如何先创建组,再把用户加入其中呢,步骤如下:

groupadd common

user add -g common common-user1

id common-user1

uid=504(common-user1) gid=504(common) 组=504(common)

解释一下:

  • groupadd groupname 用来创建一个组
  • user add -g groupname username 创建用户并指定组
为用户换组

将common-user1迁移到super组。

grouped super
groupmod -n super common-user1

id common-user1
uid=504(common-user1) gid=506(super) 组=506(super)

我们可以看到,common-user1用户所在组从common变成了super。

最佳实践

我们认为,用户操作相关的最佳实践应该遵循如下几条:

  • 每个人使用不同的用户账号登录

  • 当遇到需要高权限才能解决的问题时,可以使用切换用户命令。

假设当前用户为dev3,处理问题权限不够,可以切换为root用户

su - root

// 处理完以后,再回到dev3用户

exit

//dev3 mode
  • 将用户放在不同的组,在实际开发中,可以开发人员一组,负责人一组。酌情处理。

最后

以上是我学习Linux用户相关操作的体会,对这一方面的理解还需要在不断的学习中去加升理解。

猜你喜欢

转载自blog.csdn.net/weixin_34061482/article/details/87231676