给定同一组中的 2 个用户
myuser:grp1
anotheruser:grp1
我的个人 .exrc 文件中有一些功能键分配,我需要在两个用户登录下以相同的方式工作。我已为我的 .exrc 设置了 664 权限,并以相同的方式复制和设置其他用户的 .exrc。我的tmp文件夹有777权限并且在同一个组
F10/11/12 键来自 .exrc 的特定命令
map ^AI :1,$w! $HOME/tmp/tmp.tmp^M
map ^AJ :'k,.w! $HOME/tmp/tmp.tmp^M
map ^AK :r $HOME/tmp/tmp.tmp^Mk
问题:
su - anotheruser
获取 anotheruser .exrc 但正在使用它的本地 tmp 文件夹
su anotheruser
似乎没有使用 .exrc,因为 F 键正在执行完全不同的操作并返回以下错误:
例如:0602-054 没有替代文件名来替代 # 字符。
我可以强制 anotheruser .exrc 显式指向我的 tmp 文件夹并使用 su - 但我的 .profile 和 .kshrc 文件中缺少其他特定于操作系统的设置,我不准备向其他用户提供这些设置
答案1
我认为这是符号链接的一个很好的用例。 (这假设您有root
访问权限。)
将.exrc
文件放在世界可读的地方。有可能/usr/local/share/
,尽管实际上我认为/usr/etc/
是合适的。
sudo mv -i ~/.exrc /usr/etc/
chown
切换到root并设置权限为644。
cd /usr/etc/
sudo chown root:root .exrc
sudo chmod 644 .exrc
在您的主目录中创建一个符号链接,如下所示:
ln -s /usr/etc/.exrc ~/.exrc
并且在另一个用户的主目录中也是如此:
ln -s /usr/etc/.exrc ~anotheruser/.exrc
您仍然需要使用su - anotheruser
or su -l anotheruser
,正如您从手册页中看到的那样:
-, -l, --login make the shell a login shell, clears all envvars except for TERM, initializes HOME, SHELL, USER, LOGNAME and PATH
由于.exrc
根据您的环境变量加载$HOME
,因此需要适当设置才能使其工作。