是否有一种可移植的方式来获取Python中当前用户的用户名(即,至少在Linux和Windows下都能运行的用户名).它的工作方式如下os.getuid
:
>>> os.getuid()
42
>>> os.getusername()
'slartibartfast'
Run Code Online (Sandbox Code Playgroud)
我搜索了一下,并且惊讶地发现没有找到确定的答案(尽管我可能只是谷歌搜索不好).该PWD模块提供了一个相对简单的方法来实现这一目标下,说,Linux的,但它不存在于Windows.一些搜索结果表明,在Windows下获取用户名在某些情况下可能会很复杂(例如,作为Windows服务运行),尽管我还没有验证.
我正在用bash编写一个程序,需要获取用户的用户名.
我听说过一个叫做的东西,whoami
但我不知道它做了什么或如何使用它.
我用什么命令来获取当前用户名?
我想知道如何Subversion
更改我的更改所显示的名称.
我刚刚开始使用Subversion
.我正在使用它在XP笔记本电脑上版本控制代码,我总是以我妻子的名字登录.我希望subversion DB在我的名字下显示更改.
稍后我将复制数据库,以便整个房子可以访问它.我的妻子使用办公室电脑,她总是以我的名义登录.我可能会设置它,以便自动检查修改后的文档...最好是在她的名下.
最终我可能会在另一个用户名的Linux机器上使用它.
有没有办法修改用户环境来更改Subversion调用你的用户名?我希望设置SVN_USERNAME='Mark'
会覆盖,但它通常会得到名称.
更新:看起来--username
Michael提到的标志确实可以更改报告的名称"svn stat"
,即使对于本地文件:存储库也是如此.此外,它是粘性的,因此您无需为下一个命令指定它.我甚至重新启动它仍然使用"--username"
我之前启动时的值.
我想在GitHub上更改我的帐户的用户名,但我找不到如何做到这一点.这有可能吗?为了澄清,我不是在谈论git存储库中的user.name参数,而是实际GitHub帐户的用户名.
如何在Java中获取用户名/登录名?
这是我试过的代码......
try{
LoginContext lc = new LoginContext(appName,new TextCallbackHandler());
lc.login();
Subject subject = lc.getSubject();
Principal principals[] = (Principal[])subject.getPrincipals().toArray(new Principal[0]);
for (int i=0; i<principals.length; i++) {
if (principals[i] instanceof NTUserPrincipal || principals[i] instanceof UnixPrincipal) {
String loggedInUserName = principals[i].getName();
}
}
}
catch(SecurityException se){
System.out.println("SecurityException: " + se.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
SecurityException
当我尝试运行此代码时,我得到了一个.有人可以告诉我,我是否正朝着正确的方向前进,并帮助我理解这个问题.
我正在寻找一种有效的方法来获取整个SVN存储库或给定资源路径的唯一提交作者列表.我没有能够专门为此找到一个SVN命令(并且不要指望一个),但我希望有一个更好的方法,我到目前为止在终端(在OS X上)尝试过:
svn log --quiet | grep "^r" | awk '{print $3}'
svn log --quiet --xml | grep author | sed -E "s:</?author>::g"
Run Code Online (Sandbox Code Playgroud)
这些中的任何一个都会为每行提供一个作者姓名,但它们都需要过滤掉相当多的额外信息.它们也不处理相同作者名称的重复,因此对于很少作者的许多提交,有大量冗余流过网络.通常我只想看到唯一的作者用户名.(实际上,有时候推断每个作者的提交次数可能很方便,但即使在这些情况下,如果聚合数据的发送也会更好.)
我通常使用仅限客户端访问,因此svnadmin
命令不太有用,但如果有必要,我可能会在必要时或者更高效的情况下特别关注存储库管理员.我正在使用的存储库有成千上万的提交和许多活跃的用户,我不想给任何人带来不便.
我正在编写一个部署过程,该过程采用运行ansible脚本的用户名(例如tlau),并根据该用户名和当前日期/时间在远程系统上创建部署目录(例如tlau-deploy-2014-10 -15-16:52).
您可能认为这在ansible事实中可用(例如LOGNAME或SUDO_USER),但这些都设置为"root"或用于ssh到远程系统的部署ID.这些都不包含本地用户,即当前正在运行ansible进程的用户.
如何编写运行ansible进程的用户名并在我的playbook中使用它?
使用带有SP1的Windows 7企业版,但我希望得到一个适用于Windows XP/2003/2008/Vista/7的通用答案.
在命令提示符下,我执行一个net use
命令将Z:驱动器映射到另一台计算机上的共享,但我不使用我当前的凭据,我指定了一个不同的域和用户来映射驱动器.
net use z: \\rd-pc2037\C_DRIVE password /user:rd-pc2037\Administrator
该命令成功完成.现在驱动器已映射,如何找到用于成功映射驱动器的域和用户名?我似乎无法用net use
命令找到我想要的东西.
C:\Users\rdomarat>net use New connections will not be remembered. Status Local Remote Network ---------------------------------------------------------------------------- OK Z: \\rd-pc2037\C_DRIVE Microsoft Windows Network The command completed successfully. C:\Users\rdomarat>net use Z: Local name Z: Remote name \\rd-pc2037\C_DRIVE Resource type Disk Status OK # Opens 0 # Connections 1 The command completed successfully.
在Windows资源管理器中检查共享的属性并查看安全选项卡,向我显示了不同的人将拥有的权限,但我没有看到DOMAIN\User
我使用了什么.我在注册表中搜索也取得了有限的成功.
任何想法?
我想知道如何在JavaScript中获取当前用户的名称作为HTML文档的一部分.
在Java中,可以键入System.getProperty("user.name");
以实现此目的.在JavaScript中有什么替代方案?
为什么大多数(所有?)网站仅支持ASCII用户名?如果管理员决定开始接受Unicode用户名,是否有任何安全注意事项?
username ×10
svn ×2
ansible ×1
bash ×1
commit ×1
github ×1
html ×1
java ×1
javascript ×1
mapped-drive ×1
metadata ×1
portability ×1
python ×1
security ×1
unicode ×1
unique ×1
variables ×1
web-services ×1