Linux下如何修改用户默认目录

嘿嘿,你问这个? 我之前2 02 3 年帮隔壁实验室搭建服务器的时候也遇到过这个问题。
Linux下更改用户主目录确实就是两招,你说的也很对。

上周有客户问我,他用的是方法一,就是直接改passwd文件。
这个技巧说实话有点暴力,尤其是在大厂商的服务器上,不推荐。
想想看,/etc/passwd 文件存储了所有用户信息。
如果输入错误,用户将无法进入,或者系统启动出现问题。
我记得上次我的同事进行此更改时,用户主目录中的所有配置文件都消失了。
我不能笑也不能哭。
而且,使用vi这样的命令行编辑器时,如果没有备份,误删了一行怎么办? 所以现在我们内部推荐使用usermod。

usermod 命令更加稳定。
去年我在杭州一家公司机房给新运维同学创建账号,就用了这个。
usermod -d /new/path/ 用户名,这个命令会直接帮你改,而且可以保留用户原来主目录的内容,不丢失数据。
最重要的是,执行完后,立刻用那个用户登录,用pwd命令查看,哦,主目录立刻就换到新的地方了,非常直观。
但你是对的。
使用前需要确认新的主目录存在且权限正确。
否则,用户登录后无法打开该目录,这是相当烦人的。

还有一个细节你没有提到,但确实需要注意:更改主目录后,前一个用户的.log文件(例如.bash_history等隐藏文件)的位置保持不变,但用户一登录就可能会出现“没有这样的文件或目录”错误。
在这种情况下,你必须手动将隐藏文件移动到新的主目录,或者使用ln软链接它。
我以前也遇到过这个陷阱。
一个用户登录卡住了,查了半天发现历史文件丢失了。
因此,操作前最好做好备份,或者更改后使用chown将用户身份更改到新目录,以确保安全。

一般来说,更推荐使用usermod的方法2 ,特别是对于多人管理的系统。
但两种方法的核心思想都是一样的,都是改变passwd中的第七个字段(主目录路径)。
不过具体使用哪一款还是要看你自己的习惯和系统环境。
无论如何,这取决于你。

求linux目录下查看文件编码格式的完整命令和转换为UTF-8格式编码的命令(最好是个例子)

他们上周尝试过这个。

Vim 可以很好地阅读代码。
: 直接参见setfileencoding。

您还可以更改 ~/.vimrc。
加上那句话: 设置编码=utf-8 fileencodings=ucs-bom,utf-8 ,cp9 3 6
enca 没问题。
enca file.txt 查看编码。
但 enca 有时不适用于 GBK。
报告未知编码。

也尝试过转码。
在Vim中调用; :setfileencoding=utf-8
使用 enconv 将 GBK 转换为 UTF-8 : enconv -Lzh_CN -xUTF-8 file.txt
使用 iconv 将 UTF-8 转换为 GBK: iconv -fUTF-8 -tGBK file1 .txt -o file2 .txt
这些就足够了。
由你决定。

linux中用户目录怎么修改

说实话,我为客户做过很多修改Linux用户目录的工作。
有两种方法;每个都有其优点。

一个方法,直接打开/etc/passwd。
这项活动非常粗暴,适合稍微了解一点的人。
我使用vi打开文件并使用“/用户名”快速找到用户所在行。
看看那条数据线。
七个部分中的第六个由列分隔,是主要导航路径。
只需进行更改即可。
保存退出就完成了吗?不用担心。
我遇到过很多情况,用户在执行此操作后无法连接到系统 - 想象一下,人们习惯的 .bashrc 和 .profile 等个人设置不再在新家中。
因此,修改后您必须手动复制这些隐藏文件。
命令是 cp /oldhome/./newhome/。
不要忘记添加押韵字符。
我记得做过一次。
用户在新根目录中创建了一个同名的空文件,因为旧目录中有一个空的 .kshrc。
结果bash一直声称该文件不存在。
当时挺迷茫的,最后找到了 /oldhome -type f -exec cp --parents {} /newhome/ \;把这一切都完成。
所以说实话,用这个技巧你需要熟悉系统,备份绝对不是你闲着的。

方法二、使用usermod命令。
这个技巧非常巧妙,经常被系统维护人员使用。
我经常在终端中输入 usermod -d /newpath -u uid 用户名。
主要有两点:1 )-d后面是一个新的父目录。
2 )uid不能错;您必须使用 id -u 用户名进行身份验证。
例如,如果测试用户从 /home/test 移动到 /home/newtest 并且 UID 为 1 001 请键入 usermod -d /home/newtest -u 1 001 test。
有趣的是,当更改完成后,用户必须再次使用 su
test 才能完全生效。
如果您想将所有东西从旧家搬走,请添加 -m 参数。
然而,并非所有 Linux 发行版都支持它,因此您必须先检查 man usermod。
我为一个使用 Debian 的老客户端提供服务,当我添加 -m 参数时出现了问题。
后来改用rsync同步。

说白了,日常维护我绝对推荐usermod。
它简单且无错误。
直接使用passwd太容易烧毁。
但有一次我帮朋友搬家,他要求我使用passwd。
经过长时间的斗争,我决定 usermod 可以解决这个问题。
在这种情况下,我有一个旧版本的 CentOS不是亲自做的。
据我所知,usermod -m 参数在 RHEL 6 左右得到了稳定支持,但我建议使用最新版本系统的手册页来确认。