尝试编写能够以不同的UNIX用户身份运行UNIX命令的Java程序.我有用户的密码,我知道我想要运行的命令,但该命令必须以该用户身份运行 - 所以我必须先以该用户身份登录.
例如:假设我们有一个用户,jim,谁想要查看bob的主目录中的内容,并且(无论出于何种原因)jim可以访问执行ls而bob没有.我们目前以bob身份登录.这是我们(可以)做的:
bob@host$ su jim && ls ~bob
Run Code Online (Sandbox Code Playgroud)
问题是,我们会收到jim密码的提示.因为这是从Java程序运行的,即
Process p = Runtime.getRuntime().exec("su jim && ls ~bob");
Run Code Online (Sandbox Code Playgroud)
我们收到jim密码的提示并挂断了.我们知道jim的密码.但是,我不能输入它.
此外,我们不能使用Expect脚本(没有安装它),我们不能成为超级用户.我也考虑使用SSH来尝试这个,因为我们可以在技术上做到这一点
bob@host$ ssh jim@host "ls ~bob"
Run Code Online (Sandbox Code Playgroud)
但由于我没有设置无密码SSH的权限,这也行不通.
我最后的努力是尝试使用SSH库来实现Java,因为密码可供Java程序使用,我可以用它登录(并执行正确的命令).但是因为我要在同一台主机上运行,所以看起来有点矫枉过正.
有什么建议?
PS:Java版本1.4.2,无法升级; AIX UNIX 5.3.
我在Django中有一个Model,下面的示例代码(不是我的实际代码):
class Department(models.Model):
name = models.CharField(max_length=100)
abbreviation = models.CharField(max_length=4)
Run Code Online (Sandbox Code Playgroud)
假设我在Django shell中执行以下操作:
>>> Department(name='Computer Science',abbreviation='C S ').save()
>>> Department(name='Mathematics',abbreviation='MATH').save()
>>> Department(name='Anthropology',abbreviation='ANTH').save()
Run Code Online (Sandbox Code Playgroud)
我现在将这四个部门存储在我的数据库中.假设我们有另一个类,Course属于Department:
class Course(models.Model):
department = models.ForeignKey('Department')
number = models.IntegerField()
class CourseForm(ModelForm):
class Meta:
model = Course
Run Code Online (Sandbox Code Playgroud)
如果我ModelForm通过引用一个变量来直接在模板中渲染对象,比如form传递下来,那么Departments就会出现在一个下拉框(HTML选择框)中.到现在为止还挺好.
问题是:选择框中的项目按ID排序.所以他们看起来像:
但是,我希望它们按字母顺序排序,即
如何更改这些项在ModelForm代码或代码中的排序方式Model,而不是在模板中?
一般来说,如何通过ModelForm?生成特定字段或窗口小部件的工作方式?
我想要做的很简单:
String example = "??????? ?????? ????? ?????? ?? - Mary Had A Little Lamb";
String upper = example.toUpperCase();
Run Code Online (Sandbox Code Playgroud)
在希腊语中,只有大写单词的第一个字母应包含重音字符.
// upper contains the following (incorrect) string:
// ??????? ?????? ????? ?????? ?? - MARY HAD A LITTLE LAMB
// correct string:
// ??????? ?????? ????? ?????? ?? - MARY HAD A LITTLE LAMB
Run Code Online (Sandbox Code Playgroud)
(口音很难看,但它们在那里.)
根据Java 1.7文档,我应该能够将语言环境传递给toUpperCase,如下所示:
String upper = example.toUpperCase(new java.util.Locale("el"));
Run Code Online (Sandbox Code Playgroud)
但是,看起来似乎没有toUpperCase正确处理希腊语的具体规则.
是否可以定义toUpperCase特定区域设置的行为,以便我可以确保获得正确的结果?
或者,我可以编写一个实用程序类来处理这种特殊情况.但如果可能的话,我宁愿在每个语言环境中覆盖此函数,以防其他语言出现.
首先,对于任何交叉发布,我们深表歉意。希望我不会在这里重复问题,但我无法在其他地方找到它(通过 Google 和 Stack Overflow)。
这是错误的要点。如果我打电话printf,sprintf或者fprintf我的代码中的任何位置,显示浮动,我得到一个SIGSEGV (EXC_BAD_ACCESS)错误。让我举个例子吧。
以下抛出错误:
float f = 0.5f;
printf("%f\n",f);
Run Code Online (Sandbox Code Playgroud)
此代码不会:
float f = 0.5f;
printf("%d\n",f);
Run Code Online (Sandbox Code Playgroud)
我意识到那里有一个隐式转换,但我并不关心。我只是无法理解为什么打印浮点数与打印整数会引发错误。
注意:部分代码用于malloc创建一些非常大的多维数组。但是,这些打印语句没有以任何方式引用这些数组。这是我如何声明这些数组的示例。
#define X_LEN 20
#define XDOT_LEN 20
#define THETA_LEN 20
#define THETADOT_LEN 20
#define NUM_STATES (X_LEN+1) * (XDOT_LEN+1) * (THETA_LEN+1) * (THETADOT_LEN+1)
#define NUM_ACTS 100
float *states = (float *)malloc(NUM_STATES * sizeof(float));
// as opposed to float states[NUM_STATES] (more memory effecient)
float **q = (float**)malloc(NUM_STATES * sizeof(float*)); …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些在我的Mac上编辑SharePoint ASPX页面的方法,使用本地文本编辑器或某种远程进入SP服务器的解决方案(如带有tramp的emacs).我知道Cyberduck能够使用NTLM身份验证打开WebDAV服务器,但我无法让它工作.
到目前为止,我发现的唯一解决方案是使用与Windows Server的远程桌面连接,并从那里运行SharePoint Designer.
任何人都知道更好的方法或SharePoint Designer替代方案?
这是我见过的最奇怪的事情之一.我正在一所大学教授一门C++入门课程,我的一位学生联系我说他的代码永远不停地运行.我在课堂上简短地浏览了他的代码,并没有立即看到任何明显的东西,所以我让他给我发了他的代码.
没有做任何更改,我下载并在我的机器上运行他的代码 - 它工作正常.我能看到的唯一区别是我正在使用OSX,而他正在使用Windows.
这是代码:http://pastie.textmate.org/private/9rzpttixnuhudsvsm1yl4q
有任何想法吗?
这个问题实际上与学生输入的内容有关.在提示存款时尝试输入一个字符串,我从来没有想过.
顺便说一句,关于这些天大学程序员的"质量"的贬低评论:我不确定该评论是针对我还是针对我的学生,但我想简要介绍两种观点.
假设它是针对我的:我是课程的助教,而不是主讲师,我负责教授实验课程.因此,通过"教授C++入门课程",我的意思是"实验作业中涵盖的教材".关于我自己的背景和经验,我不得不承认我感到有些轻视.我首先是一名人工智能研究员,在一个主要是理论的领域工作(读:逻辑和数学),我不必编写C++代码.我将此问题发布到Stack Overflow 的全部原因是因为我总是在这里找到有用且有创意的解决方案.我心里想,"这里有一些奇怪的东西,我不会马上看到,但不要担心,SO上的人都有这个."
所有这一切:我正在尽我所能帮助这些孩子学习这些材料. 这种态度对任何事都没有帮助.
假设它是针对我的学生的:来吧,真的吗?他甚至不是一个CS专业,这个任务是由类的第三个星期-他的节目的第三个星期的任何一种,永远.我不想在游戏初期劝阻他.
java ×2
macos ×2
aix ×1
c ×1
c++ ×1
django ×1
django-forms ×1
iostream ×1
localization ×1
malloc ×1
passwords ×1
printf ×1
python ×1
sharepoint ×1
ssh ×1
unix ×1
while-loop ×1
windows ×1