linux如何修改用户主目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux如何修改用户主目录相关的知识,希望对你有一定的参考价值。

1、打开操作系统,切换到要修改的文件或目录的父目录。注意,首先切换到root用户群进行更改。

2、接下来,复制/etc/rc.d下的文件到/tmp下,并切换到/tmp目录。

3、文件的基本权限分为三种:rwx,权限的对象也有三种:属主(u)、属组(g)、其他(o)。对于文件权限的修改,有两种方式。第一种指定对某一类用户添加(+)或删除(-)某一个权限。在不指定用户时,表示对所有用户修改某一个权限。

4、第二种是直接指定一个3位的8进制数,它的二进制表示的每一位分别表示该用户的某个权限,0表示没有权限,1表示有权限。

5、以上的命令只能修改对应的目录自身权限,不能修改目录内部文件的权限。如果要修改目录内部的权限,则使用-R选项,表示递归修改。

参考技术A

1、开始之前,我们需要有root权限。这里我们就以binn这个用户为例。我们先来看看我们机器上有哪些shell。cat /etc/shells。

2、使用的shell是bash,最后一个:后面的字段即是用户shell路径。

3、登入binn用户,查看是否是bash。可以看到确实是bash无误。

4、那么,我们先把binn用户登出。logout然后再回到我们root这里,vim /etc/passwd打开用户配置文件。把binn的shell改为ksh。按a插入。修改binn最后:后的字段——/bin/bash为/bin/ksh。

5、按下ESC输入:wq保存退出。

6、然后我们再次登录binn。可以看到确实是ksh无误。

参考技术B   第一:修改/etc/passwd文件  详细说明如下:  第一种方法:vi /etc/passwd  找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。  /etc/passwd文件格式  登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序  用此方法修改了用户宿主目录后,会出现某些异常,如:bash环境异常,需要将用户原宿主目录下的隐藏文件拷贝到更改后的宿主目录即可  cp /原宿主目录/.* /目标目录  第二种:usermod  usermod -d /usr/newfolder -u uid  -u后面一定要接uid啊,不是username  附:usermod详细参数  语  法:usermod [-LU][-c <备注][-d <登入目录][-e <有效期限][- f <缓冲天数][-g <群组][-G <群组][-l <帐号名称][-s ][-u ] [用户帐号]  补充说明:usermod可用来修改用户帐号的各项设定。  参  数:  -c<备注  修改用户帐号的备注文字。  -d登入目录  修改用户登入时的目录。  -e<有效期限  修改帐号的有效期限。  -f<缓冲天数  修改在密码过期后多少天即关闭该帐号。  -g<群组  修改用户所属的群组。  -G<群组  修改用户所属的附加群组。  -l<帐号名称  修改用户帐号名称。  -L  锁定用户密码,使密码无效。  -s  修改用户登入后所使用的shell。  -U  解除密码锁定本回答被提问者采纳 参考技术C 有两种方法:
第一:修改/etc/passwd文件
第二:usermod命令
详细说明如下:
第一种方法:vi /etc/passwd
找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。
第二种:usermod
usermod -d /usr/newfolder -u uid
-u后面一定要接uid啊,不是username
附:usermod详细参数
语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-
f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ]
[用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参  数:
-c<备注>   修改用户帐号的备注文字。
-d登入目录>   修改用户登入时的目录。
-e<有效期限>  修改帐号的有效期限。
-f<缓冲天数>   修改在密码过期后多少天即关闭该帐号。
-g<群组>   修改用户所属的群组。
-G<群组>   修改用户所属的附加群组。
-l<帐号名称>  修改用户帐号名称。
-L  锁定用户密码,使密码无效。
-s  修改用户登入后所使用的shell。
-u  修改用户ID。
-U  解除密码锁定。
参考技术D

  操作步骤如下:

  1、切换到root用户,直接修改/etc/passwd文件,找到用户名一行,如下图所示修改路径,然后保存即可;


  2、切换到root用户,使用usermod命令,例如usermod -d /tmp test (test为用户名),使用该命令请确保该用户下没有运行的软件或进程;


  3、最后切换到普通账户,就会看到当前默认目录已经更改了。

Linux获取用户主目录

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os


class get_home_path(object):
def __init__(self, username):
self.username = username
self.user_dict = {}

def read_passwd(self):
with open("/etc/passwd", "r") as user_info:
for f in user_info.readlines():
f_list = f.strip(‘\n‘).split(‘:‘)
self.user_dict[f_list[0]] = f_list[5]
return self.user_dict

def get_home_dir(self):
user_dict = self.read_passwd()
try:
home_dir = user_dict[self.username]
return home_dir
except Exception, e:
print "%s user not exist!" % e
sys.exit()

if __name__ == ‘__main__‘:
if len(sys.argv) == 1:
print os.path.expanduser(‘~‘)
elif len(sys.argv) == 2:
username = sys.argv[1]
get_path = get_home_path(username)
print get_path.get_home_dir()
else:
print "Parameter input is incorrect,more than one."



































以上是关于linux如何修改用户主目录的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何设置命令的默认路径

linux 修改用户主目录(转载)

linux环境下如何快速切换到用户tom的主目录

Linux添加用户/权限/用户主目录等相关

linux获取用户主目录的绝对路径

Linux:无法获取包含空格的用户主目录[关闭]