Linux用户相关操作
这篇文章主要记录一下几个问题
-
登录远程Linux主机
-
关机重启命令
-
用户管理增删用户
-
用户组的概念
-
最佳实践
远程登录
要实现远程登录,首先需要保障的是Linux下的sshd
启动正常。
在windows
下我们可以使用xshell5
建立会话的方式建立连接,在mac
下,我们更多使用命令的方式。
ssh root@192.168.230.128
之后输入密码,即可登录。
关机重启命令
使用shutdown
命令
立即关机
shutdown -h now
halt
以上两条命令都可以用来关机
延迟关机 一分钟以后
shutdown -h 1
立即重启
shutdown -r now
reboot
以上两个命令都可以用来重启
同步
sync
在关机或重启之前,我们可以先执行sync
命令,将内存中的数据同步到磁盘。
注销
logout
需要强调的事,这条命令只在远程访问时有效。我们可以理解为退出了连接会话。
用户管理
在这之前,我们一直使用的事root
用户进行的操作,而在现实生产中,我们是一定要重视安全问题的,因为root
用户具有极高的操作权限,如果我们每次都使用root
用户去操作,可能会造成生产事故。所以往往我们会为开发人员创建单独的用户,而root
用户密码仅仅只掌握在少数人手中。
创建用户
非常简单的命令,如下:
useradd dev1
此时我们就成功创建了除了root
用户以外的第一个用户。
这里需要注意的是,当我们观察根目录下的home
目录下会生成与用户名同名的文件夹。这也说明,我们创建用户的操作是成功的。
/home/dev1
刚才,我们仅仅创建了用户,如果需要登录到远程,还需要密码。
为用户设置密码
passwd dev1
之后连续输入两次密码,前后须保持输入一致。可能会提示密码过于简单等问题。可以不用管。
此时,我们可以退出会话,使用dev1
来连接了。
logout
ssh dev1@192.168.230.128
正常的话,我们就可以用dev1
连接到会话了。
删除用户
要实现删除用户,我们肯定得使用root
账号了。看以下命令:
//断开dev1建立的会话
logout
ssh root@192.168.230.128
userdel dev1
成功之后,为了验证该用户确实无法再登录远程,我们可以测试
// 断开root
logout
ssh dev1@192.168.230.128
正常的话,远程主机会反馈我们如下信息
Permission denied, please try again.
当我们以后再看到这样的信息,应该要考虑用户是否被删除导致无法登录。
此时,我们应该想到,用户被创建时,同时被创建的同名文件夹是否被删除了呢,我们一探究竟。
不出意外的话,结果应该是,文件夹还存在。也就是说,虽然我们删除了用户,但是那个用户之前创建的文件等信息依然留存。如果我们想连同该用户对应的文件夹删除,我们可以尝试以下命令。
为了方便演示,我们创建dev2用户
useradd dev2
passwd dev2
logout
ssh dev2@192.168.230.128
使用新创建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 root@192.168.230.128
user del -r dev2
cd /home/dev2
ls -al
总用量 0
需要注意的是,我们在正常删除用户命令的基础上加了-r
参数,即可删除文件,但是文件本身不会被删除,删除用户名文件夹下的子项。
用户组
为了方便演示,我们创建dev3
和dev4
用户。
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用户相关操作的体会,对这一方面的理解还需要在不断的学习中去加升理解。
网友评论