用linux创建5个标准组:students, staff, tutor, tempuser,teacher 并显示
时间: 2024-05-21 09:11:36 浏览: 116
我可以回答您的问题。以下是创建5个标准组的命令:
1. 创建students组:sudo groupadd students
2. 创建staff组:sudo groupadd staff
3. 创建tutor组:sudo groupadd tutor
4. 创建tempuser组:sudo groupadd tempuser
5. 创建teacher组:sudo groupadd teacher
您可以使用以下命令查看已创建的组:
grep 'groupname' /etc/group
将groupname替换为您要查看的组名。
希望这可以帮助您!
相关问题
用Linux系统2.创建5个标准组:students, staff, tutor, tempuser,teacher 并显示 3.创建5个用户: 1.账户student1 主组是名为student1的私有组,附加组为students,使用 --stdin设置密码 student1qwer ,查看账户id信息 2.账户student2 主组是名为student2的私有组,使用 --stdin设置密码 student2uiop,查看账户id信息 3.账户student3.tutor 主组为students,设置密码1234,查看账户id信息 4.账户tutor 主组为tutor, 附加组为staff,设置密码12345,查看账户id信息 5.账户 teacher1 主组为tescher, 附加组为 staff,口令失效时间为2021/6/18(并查看),设置密码123456,查看账户id信息
好的,您的问题是如何在Linux系统中创建5个标准组和5个用户,并设置相应的组和密码等信息。
那么,让我来为您解答这个问题吧。
首先,我们需要在Linux系统中打开终端,使用root权限登录。
接着,按照以下步骤来创建5个标准组:
1. 创建students组:使用以下命令创建新组students:
`sudo groupadd students`
2. 创建staff组:使用以下命令创建新组staff:
`sudo groupadd staff`
3. 创建tutor组:使用以下命令创建新组tutor:
`sudo groupadd tutor`
4. 创建tempuser组:使用以下命令创建新组tempuser:
`sudo groupadd tempuser`
5. 创建teacher组:使用以下命令创建新组teacher:
`sudo groupadd teacher`
接下来,让我们来创建5个用户:
1. 创建账户student1,并将其添加到students组中:
`sudo useradd -g student1 -G students -p $(openssl passwd -1 student1qwer) student1`
这条命令创建了用户名为student1的账户,主组为student1私有组,附加组为students组,并设置了密码为student1qwer。
2. 创建账户student2,并将其添加到students组中:
`sudo useradd -g student2 -G students -p $(openssl passwd -1 student2uiop) student2`
这条命令创建了用户名为student2的账户,主组为student2私有组,附加组为students组,并设置了密码为student2uiop。
3. 创建账户student3.tutor,并将其添加到students组中:
`sudo useradd -g students -G tutor -p $(openssl passwd -1 1234) student3.tutor`
这条命令创建了用户名为student3.tutor的账户,主组为students组,附加组为tutor组,并设置了密码为1234。
4. 创建账户tutor,并将其添加到tutor组中:
`sudo useradd -g tutor -G staff -p $(openssl passwd -1 12345) tutor`
这条命令创建了用户名为tutor的账户,主组为tutor组,附加组为staff组,并设置了密码为12345。
5. 创建账户teacher1,并将其添加到teacher组和staff组中:
`sudo useradd -g teacher -G staff -p $(openssl passwd -1 123456) -e 2021-06-18 teacher1`
这条命令创建了用户名为teacher1的账户,主组为teacher组,附加组为staff组,并设置了密码为123456,且口令失效时间为2021/6/18。
最后,您可以使用以下命令来查看每个账户的ID信息:
```
sudo id student1
sudo id student2
sudo id student3.tutor
sudo id tutor
sudo id teacher1
```
好了,这就是您所需要的解答。如果您还有其他问题,可以随时提出。
修改并完善此代码#include<iostream> using namespace std; #include<cstring> class Teacher { public: Teacher() { } Teacher(char *p,int a) { pname=new char[20]; strcpy(pname,p); age=a; } Teacher(Teacher &t):pname(t.pname),age(t.age) { pname=new char[20]; //strcpy(pname,t.pname); } ~Teacher() { delete []pname; } Teacher& operator =(Teacher &t) { delete []pname; pname=new char[strlen(t.pname)+1]; strcpy(pname,t.pname); age=t.age; return *this; } void Disp() { cout<<"Teacher:"<<pname<<","<<age<<endl; } private: char *pname; //存名字的地址 int age; }; class Student { public: Student() { } Student(char *n,int s) { strcpy(name,n); score=s; } void Disp() { cout<<"Student:"<<name<<","<<score<<endl; } protected: char name[10]; int score; }; class Tutor { public: Tutor() { } Tutor(char *n1,int s,char *n2,int a):s(n1,s),t(n2,a) { num=0; } Tutor(Tutor &t):s(t.s),t(t.t) { num=t.num; } void Date() { num++; } void Disp() { s.Disp(); t.Disp(); cout<<"Num:"<<num<<endl; } protected: Student s; Teacher t; int num;//存储师生会面次数 }; int main() { char name1[15],name2[15]; int score,age; cin>>name1>>score>>name2>>age; Tutor tt1(name1,score,name2,age),tt2; tt1.Disp(); tt1.Date(); //师生碰面一次 tt2=tt1; //此处调用的哪段代码? tt2.Disp(); Tutor tt3=tt1; //此处调用的哪段代码? tt3.Date(); tt3.Disp(); return 0; }
修改后的代码如下:
```
#include<iostream>
#include<cstring>
using namespace std;
class Teacher {
public:
Teacher() {
pname = NULL;
age = 0;
}
Teacher(char* p, int a) {
pname = new char[strlen(p) + 1];
strcpy(pname, p);
age = a;
}
Teacher(const Teacher& t) {
pname = new char[strlen(t.pname) + 1];
strcpy(pname, t.pname);
age = t.age;
}
Teacher& operator=(const Teacher& t) {
if(this != &t) {
delete[] pname;
pname = new char[strlen(t.pname) + 1];
strcpy(pname, t.pname);
age = t.age;
}
return *this;
}
~Teacher() {
delete[] pname;
}
void Disp() {
cout << "Teacher:" << pname << "," << age << endl;
}
private:
char* pname;
int age;
};
class Student {
public:
Student() {
name[0] = '\0';
score = 0;
}
Student(char* n, int s) {
strcpy(name, n);
score = s;
}
void Disp() {
cout << "Student:" << name << "," << score << endl;
}
protected:
char name[10];
int score;
};
class Tutor {
public:
Tutor() {
num = 0;
}
Tutor(char* n1, int s, char* n2, int a) : s(n1, s), t(n2, a) {
num = 0;
}
Tutor(const Tutor& t) : s(t.s), t(t.t) {
num = t.num;
}
void Date() {
num++;
}
void Disp() {
s.Disp();
t.Disp();
cout << "Num:" << num << endl;
}
protected:
Student s;
Teacher t;
int num;
};
int main() {
char name1[15], name2[15];
int score, age;
cin >> name1 >> score >> name2 >> age;
Tutor tt1(name1, score, name2, age), tt2;
tt1.Disp();
tt1.Date(); //师生碰面一次
tt2 = tt1; //调用赋值运算符函数
tt2.Disp();
Tutor tt3 = tt1; //调用拷贝构造函数
tt3.Date();
tt3.Disp();
return 0;
}
```
主要修改的地方是:
1. 修改了Teacher类的构造函数、拷贝构造函数、赋值运算符函数和析构函数,保证了对象之间的独立性和数据的正确性。
2. 修改了Student类的构造函数,初始化name数组为空字符串。
3. 修改了Tutor类的构造函数和拷贝构造函数,使用成员初始化列表初始化数据成员。
4. 在main函数中,创建了两个Tutor对象,并测试了赋值运算符函数和拷贝构造函数的正确性。
阅读全文