苏与苏-关于 .exrc

苏与苏-关于 .exrc

给定同一组中的 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 - anotheruseror 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,因此需要适当设置才能使其工作。

相关内容